読者です 読者をやめる 読者になる 読者になる

Try & Errorで汚れてしまった履歴をきれいにする #git

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