今までgitはGUIツールに頼ってコマンドラインでの操作はサボっており、
大きめのプロジェクトに入り、
コミット履歴多くなってるからまとめてくれる?と言われ、
GUIツールでまとめようとしたら上手くいかず(自分の操作が悪いかもですが)
コマンドラインでやってみたものの全然上手くいかず、
ハマり倒すことになったのでまとめておきます。
Commit履歴をまとめる
- 直近のコミットに更新したコミットをまとめる
git commit --amend
- amendしたコミットをリモートにpushする
git push --force-with-lease
※amendしたコミットはforce pushなりなんなりしないとアップすることができない。
しかし調べてみるとforce pushは悪とのことだったので、
ローカルが最新かどうかを判定して最新でなければ失敗する
git push --force-with-lease
こちらを使おうねということみたいです。
git push --force-with-leaseに関してはこちらの記事を参考にさせて頂きました。
リモートに複数commitしてしまっていた場合
git rebase -i HEAD~
// ~の後にまとめたい数値を入れる
// 例:二件まとめたい場合はgit rebase -i HEAD~2
こちらの方法でsquashしてまとめる。
こちらの記事を参考にさせて頂きましたので、
詳しい方法に関してはこちら参考にしてみてください。
ただgit push -fより
git push --force-with-leaseでpushする方が良さそうです。