Summary
Pull Requestの際など、 branch をまとめて squash したいときの方法。$ git branch -M feat tmp_squash # ブランチ feat を tmp_squash にリネーム
$ git checkout dev
$ git checkout -b feat # devブランチをベースにfeatを作り直す
$ git merge --squash tmp_squash # squashで1つの変更として取り込む
$ git commit -a
$ git branch -D tmp_squash # 一時作成したブランチ tmp_squash を削除
$ git push my_repo feat -f # remoteと食い違うので -f オプションを付けて push
ブランチのマージのベストプラクティス
ローカル(自分用) -> ローカル (リモート用) | merge --squash |
リモート -> ローカル (リモート用) | pull --rebase |
ローカル(リモート用) -> ローカル (自分用) | rebase |
ローカル(リモート用) -> ローカル (リモート用) | merge --no-ff |
Reference
Git - ブランチをまるっとsquashする - Qiitahttp://qiita.com/kumagi/items/216f0d317a0ad1b1cbe3
Git のマージについて、自分的まとめ - tanaka51のブログ
http://tanaka51.hateblo.jp/entry/20120530/1338386845