ローカル リポジトリに、テーマが似ているコミットが多数あります。リモートにプッシュする前に、それらを 1 つのコミットに結合したいと思います。どうすればいいですか? できると思いますrebase
が、ドキュメントの意味がわかりません。
ベストアンサー1
あなたがやりたいことは、git では「スカッシング」と呼ばれています。これを行うときには多くのオプションがありますが (多すぎるでしょうか?)、プッシュされていないコミットをすべて 1 つのコミットにマージしたい場合は、次のようにします。
git rebase -i origin/master
これにより、テキスト エディター (-i
は「インタラクティブ」の略) が起動し、次のようなファイルが表示されます。
pick 16b5fcc Code in, tests not passing
pick c964dea Getting closer
pick 06cf8ee Something changed
pick 396b4a3 Tests pass
pick 9be7fdb Better comments
pick 7dba9cb All done
最初のものを除くすべてを(または)pick
に変更します。squash
s
pick 16b5fcc Code in, tests not passing
squash c964dea Getting closer
squash 06cf8ee Something changed
squash 396b4a3 Tests pass
squash 9be7fdb Better comments
squash 7dba9cb All done
ファイルを保存してエディターを終了します。すると、別のテキスト エディターが開き、すべてのコミットからのコミット メッセージを 1 つの大きなコミット メッセージに結合できるようになります。
できました! 「git squashing」を Google で検索すると、利用可能な他のすべてのオプションの説明が表示されます。