The Diary of Aska

git merge 後の commit に -m を使ってはいけない

 gitのAutoMerge機能は素晴らしく、ブランチでごにょごにょ手動マージしたcommitもmasterにmergeする際は一発でmergeしてくれる。

 但し、commit -mでcommitすると、conflictを解決したというログが残らない為か、masterにmergeする際にもconflictしてしまう。

 -mを使わずcommitすれば、Conflicts: some_fileというメッセージが付与され、master側でmergeする際AutoMergeによって上書きされる。

 話は以上だが、一応備忘録としてログも残しておく。gitはググれば大抵の事は載ってるが、本を買って一読しておいた方が時間の節約になる。

ログの例

Merge branch 'master' into aska

Conflicts:
    some_file.md

作業ログ

git branch aska
# ファイル編集
# masterをpullする前に自分の作業ブランチにcommitしておく
git add some_file
git commi -m 'some message.'
git checkout master
# 先に自分の更新をcommitして作業ディレクトリを綺麗にしておかないとエラーが出る
git pull
git checkout aska
# commitしておいた分と照らし合わせてAutoMergeしてくれる、が、conflictする事もある
git merge master
# conflictを直し、テストを走らせるなどして壊してないか確認する
vim some_file
perl Makefile.PL
make
make test
# masterをmergeした後は、速やかにcommitしておかないと自分の更新と混ざりcommitログがカオス
git commit
# commitしたらmasterの管理者にmergeをお願いしよう
git push origin aska
# say "please merge aska branch!"
# 必要なければブランチを消す