gitのmergeは全部手動でやるのが吉かもしれない
大体はgit pull
使ってたけど、pullコマンドはfetchとmergeを両方同時でやっているので、細かいところの調整ができないし、なにやってるのかわからなくなる。
この記事とかすごくためになります。
Git pullを使うべきでない3つの理由 - DQNEO起業日記
なので毎回ブランチをmergeするときは、手動でやるとかのルールを自分で設けておこうと思った。
この記事では手動mergeの手順をまとめておく。
ローカルでの手動merge手順
以下の記事を参考にさせていただきました。
Githubで手動マージが必要になった時に実行するコマンド | Hack
ローカルのブランチをてもとでmergeするときの方法を簡単ですが書いておきます。
まずは変更を取り込む(メインの流れになる)ブランチにチェックアウト。
$ git checkout master
git merge
コマンドでmergeします。オプションは基本的に--no-off
を使いたい。これならトピックブランチがあったこともコミットログに残るので。(git pull
のデフォルトの挙動はこれかな?)
$ git merge --no-ff totz_bugfix
git merge
コマンドのオプションについては以下を参考に
- 図で分かるgit-mergeの--ff, --no-ff, --squashの違い
図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ
git merge
コマンドにはいくつかのオプションがあって、mergeのときの挙動が違ってくる。表面的にもコミットログが違うものになるので、このオプションを知っておくことも大事だ。
そしたらリモートにも変更を反映させます。
$ git push origin master
必要でなければトピックブランチは削除。
$ git branch -d totz_bugfix
一括で削除したりmergeしたときに自動で削除できるようにしてる方もいた。