1

この状況があるとしましょう:

       master
         |
A--B--B--D--E--F--G
                  |
                test

次に、テストをマスターにマージします。コミットEとFは新しいマスターブランチに保持されますか?

つまり、今では次のようになっていますか(オプションA):

                master
                  |
A--B--B--D--E--F--G
                  |
                test

またはこのように(オプションB):

          master
            |
A--B--B--D--G
            |
          test

すでに質問されている場合は申し訳ありませんが、見つかりませんでした。また、ProGitブックの例では、コミットが1つだけ先にあり(私の例ではEになります)、このような状況に対処していません。

4

3 に答える 3

2

オプションA:コミットは保持されます。早送りマージの場合、履歴はまったく変更されず、master分岐点のみが別のコミットを指します。それで全部です。

于 2012-05-29T22:38:27.637 に答える
1

早送りマージ(オプションA)が得られます。最初の理由は、マージ前にマスターとテストの間にコミットが1行しかないためです。マスターとテストの間にブランチがあった場合、それはもはや早送りマージではありません。

gitでの分岐とマージがどのように機能するかについての概要については、これを読むことをお勧めします-gitを使用するときにこれらがどのように機能するかを本当に明確にする必要があります。

于 2012-05-29T23:00:05.293 に答える
1

オプションAが発生します。分岐点を保持したい場合があり、gitに新しいマージコミットを作成させることがあります。

git merge --no-ff test

これは、開発のために実行するワークフローによって異なります。

于 2012-05-29T23:00:45.400 に答える