96

私は機能ブランチに取り組んでいます。

  1. いくつかのコミットを行いました。押しつぶされたコミット。
  2. 変更をリモート ブランチにプッシュしました。競合が発生しました。
  3. マスターからの変更をマージし、機能ブランチで競合を解決しました。
    • git fetch origin master
    • git merge FETCH_HEAD
    • 競合を手動で解決しました。
    • git commit
    • git push
  4. もう1つコミットしました。

というわけで、現在のコミット履歴はこんな感じ。現在から古いものへ:

  1. コミット 3
  2. commit My yyy (マージ済み)
  3. コミット 2

機能ブランチをマスターにマージする前に、3 つ以上のコミットを 1 つにまとめるにはどうすればよいですか?

4

6 に答える 6

10

featureフィーチャー ブランチが呼び出され、メイン ブランチが呼び出されると仮定しますmain

から一時ブランチを作成しますmain

git checkout -b temp main

featureブランチを次のようにつぶします。

git merge --squash feature

変更をコミットします (コミット メッセージには、押しつぶされたすべてのコミット メッセージが含まれます)。

git commit

ブランチに戻り、featureブランチをポイントしtempます。

git checkout feature
git reset --hard temp

一時ブランチを削除します。

git branch -d temp
于 2021-11-03T15:26:43.700 に答える