Try & Errorで汚れてしまった履歴をきれいにする #git
概要
開発中、あーでもないこーでもない、とTry&Errorすることはあります。
普通はローカル環境で試してみると思うんですが、例えばCIとの連携だったりすると、修正しているファイルを実際にcommitしてpushすることになるかと思います。
(設定ファイルをこうしてみたり、ああしてみたり、なイメージ)
そうするとコミット履歴が汚れてしまうので、そんなときログをキレイにする方法です。
git rebaseでsquash する
複数のコミットをまとめることができます。
git rebase -i {コミットID}
こうすると、コミットID以降のコミットをまとめられます。
詳細は下記リンクが分かりやすかったです。
http://iwb.jp/git-commit-rebase-squash/
Conflictした!
Conflictした場合は、git statusとかで競合ファイルを確認・修正したあと、git addします。
そのあと(commitではなく)git rebase --continue とすることで、rebaseを継続することができます。
http://blog.seasons.cc/entry/20090329/1238351273
--force-with-lease で git push
既にpush済のbranchの場合、pushできなくなります。
force push は他の人の変更まで潰してしまうので、--force-with-leaseを使います。
幾つか注意事項があるので、下記を一読のこと。
http://qiita.com/upinetree/items/5d0b224b8e53ad276ea0