3

オリジン/マスターから離れたローカルブランチAがあるとします。ブランチAに継続的に変更を加え、リモートマスターをフェッチし、リベースしています。

次に、AからローカルブランチBを取得します。ブランチBに継続的に変更を加え、リベースします。

ブランチAとBに取り組んでいるのは私だけです。

AのコミットID(ハッシュ)が頻繁に変更される可能性があるため、これは悪い設定ですか?それは何らかの形でブランチBを不安定にしますか、それとも競合を起こしやすくしますか?

実際、Gitはこのセットアップをどのように実装していますか?AのコミットIDがその下から変化し続ける場合、BのHEADとは何ですか?

4

2 に答える 2

4

このタイプのサイクル(フェッチ/リベース)で同じ競合が何度も発生する場合は、git rerere機能をアクティブ化できます。
これにより、リベースごとに同じ競合解決を行う必要がなくなります。

詳細については、「有効にすることの欠点はありますgit rerereか?」、「rerereを楽しんでください」、「RerereYourBoat...」も参照してください。

于 2012-08-19T07:49:03.030 に答える
0

これにより、競合が発生し続け、毎回競合が発生する可能性があります。

トピックBがトピックAに依存しない限り、BをAからリベースしないでください。

それ以外の場合は、AとBの間に競合が発生しないようにしてください。

gitの実装では、リベースするまで、Bでのコミットは古いAブランチでのコミットに依存します。

基本的に、リベースするとき、gitは古いコミットを削除せず、リベースによって新しいコミットを作成し、ブランチAのヘッドポインターを新しい最終コミットに設定します。

ブランチはコミットへの単なるポインタです。

于 2012-08-19T01:39:19.763 に答える