チュートリアル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 0d744a7] Conflicts:   sample.txt
 1 files changed, 4 insertions(+), 0 deletions(-)

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