複数のコミットを別のブランチに 1 つのコミットとしてマージするにはどうすればよいでしょうか? 質問する

複数のコミットを別のブランチに 1 つのコミットとしてマージするにはどうすればよいでしょうか? 質問する

リモート Git サーバーがあり、実行したいシナリオは次のとおりです。

  • バグや機能ごとに異なるGitブランチを作成します

  • 私は非公式のGitメッセージを使ってGitブランチにコードをコミットし続けます

  • トップリポジトリでは、公式Gitメッセージを使用して1つのバグに対して1つのコミットを行う必要があります。

では、自分のブランチをリモート ブランチにマージして、すべてのチェックインに対して 1 つのコミットだけを取得するにはどうすればよいでしょうか (これにはコミット メッセージも提供したいのですが)?

ベストアンサー1

バグ修正ブランチが呼び出されbugfix、それを次のようにマージするとしますmaster

git checkout master
git merge --squash bugfix
git commit

これにより、ブランチからすべてのコミットが取得されbugfix、1 つのコミットにまとめられ、masterブランチとマージされます。


説明

git checkout master

あなたのブランチに切り替えますmaster

git merge --squash bugfix

ブランチからすべてのコミットを取得しbugfix、現在のブランチと 1 つのコミットにグループ化します。
(マージ コミットは表示されません。次のコミットの前に手動で競合を解決できます)

git commit

マージされた変更から単一のコミットを作成します。

パラメータを省略すると、-mコミットを確定する前に、圧縮されたコミットからのすべてのメッセージを含むドラフトコミット メッセージを変更できます。

おすすめ記事