チュートリアル3 コミットを書き換えよう! 7. merge --squash

このチュートリアルでは、あらかじめ履歴が準備されているローカルリポジトリを使用します。
こちらからダウンロードしてください。

stepup-tutorial/tutorial7ディレクトリに移動します。このリポジトリの履歴は次の図で表す状態になっています。
ここでは、issue1ブランチのすべてのコミットを、ひとつのコミットとしてまとめてmasterブランチに取り込みます。

masterブランチに移動した後、--squashオプションを指定してmergeを実行します。

$ git checkout master
Switched to branch 'master'
$ git merge --squash issue1
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Squash commit -- not updating HEAD
Automatic merge failed; fix conflicts and then commit the result.

競合が発生したので、sample.txtを開いて競合箇所を修正してからコミットします。

$ git add sample.txt
$ git commit
[master e6ab35c] Conflicts: sample.txt
1 files changed, 4 insertions(+), 0 deletions(-)

これで、issue1ブランチ上のすべてのコミットを一つにまとめたものが、masterブランチに追加されました。logコマンドで履歴を確認してください。