Git にプッシュする前に複数のコミットを結合する [重複] 質問する

Git にプッシュする前に複数のコミットを結合する [重複] 質問する

ローカル リポジトリに、テーマが似ているコミットが多数あります。リモートにプッシュする前に、それらを 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に変更します。squashs

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 で検索すると、利用可能な他のすべてのオプションの説明が表示されます。

おすすめ記事