1

このようなブランチがある場合:

      A---B---C topic
     /
D---E---F---G master

トピックをマスターにマージすると、次のようになります。

      A---B---C topic
     /         \
D---E---F---G---H master

ここで、ブランチを削除してもtopic(ローカルの開発ブランチであり、 のみをプッシュしたとしましょう) で開始して で終了しmasterた機能が実装されていたという情報が残っています。EH

masterブランチで作業している間、ブランチに同時コミットがなかった場合でも、同じ種類の情報を保持することは可能topicですか? 例えば:

      A---B---C topic
     /
D---E master

今マージすると、次のようになります。

D---E---A---B---C master/topic

トピック ブランチを削除すると、将来、topicブランチに実装された機能がどこで終了したかについての情報がなくなります。そして枝を残したとしても、どこから始まったのかわからない。

私は両方の両親を維持し、次のようなものを持ちたいと思います:

      A---B---C topic
     /         \
D---E-----------F master

これがsvnのデフォルトの動作だと思います。gitで同じことを達成できますか?

4

1 に答える 1

4

はい、--no-ffフラグを使用すると、マージが早送りケースに解決された場合でも、マージ コミットが作成されます。例 ( から開始したと仮定C):

git checkout E
git merge --no-ff C

詳細については、git-merge(1)ドキュメントを参照してください。

于 2013-01-17T22:25:44.493 に答える