Gitで開発していて、コミットしたい時にリモートリポジトリが進んでいたらどうしますか?
普通は以下の2つのコマンドのうちどちらかを行うのではないでしょうか?
* git pull
* git rebase
## git pull場合
git pullはfetchとrebaseを一回で行うコマンドです。
(皆さん忘れがちですが。。。)
場合によってマージコミットが作成されます。
複数人で開発している場合に履歴にマージコミットが乱立してしまうので、見た目が悪いです。
それぞれの人が機能毎に開発していて、実装が終わったタイミングでマージするのであれば問題ないと思いますが、SVNなどの延長で使いだした人はこまめにコミットしてあとからコミットをまとめるなどの事はしないとおもいます。
コミットをまとめる文化を根付かせるか、後述するrebaseコマンドを使うのが良いと思います。
## git rebaseの場合
自分のコミット(originにpushしていない)を現在のoriginの上にマージしてくれます。
この場合、マージコミットは作成されないので、後からコミット履歴が一直線に並びます。
複数人で開発をする場合にはこちらの方が良いのではないかと思います。
rebaseコマンドを実行する前にfetchを行う必要があるので注意してください。
```bash
`gutter:false;
$ git fetch
$ git rebase
```
## その他
皆さんの環境ではどのようにgitでマージ/リベースしていますか?
ベストな方法があれば教えてください。
0 件のコメント :
コメントを投稿