1. ホーム
  2. git

[解決済み] 複数のコミットを1つのスクワッシュされたコミットとして別のブランチにマージするにはどうすればよいですか?

2022-03-16 06:25:47

質問

私はリモートのGitサーバーを持っています。私が実行したいシナリオは次のとおりです。

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

  • そのGitブランチに、非公式なGitメッセージでコードをコミットし続けます。

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

では、私のブランチをリモートブランチにマージして、私のすべてのチェックインに対してリモートブランチが一つのコミットを取得するようにするにはどうすればよいでしょうか (このためにコミットメッセージを提供したいとも思っています)。

解決方法は?

バグフィックスブランチの名前は 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 パラメータを使用すると、コミットを確定する前に、つぶしたコミットのすべてのメッセージを含むコミットメッセージの草稿を修正することができます。