3

仕事で gerrit を使用していますが、マージ コミットの代わりにリベースを使用する必要があります。今日、ハッシュ値を使用して以前のコミットをチェックアウトし、git branch コマンドを実行したところ、「ブランチなし」であることが通知されました。これは切り離されたHEADだと思いますか?いずれにせよ、マスター ブランチに対してリベースすると、コンソールが出力されました。

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...

この状況での「3 者合流」はどこから来るのでしょうか? また、リベース後もHEADは切り離されていましたか(「base-tree」ステートメントを考慮して)?ありがとうございました。

4

2 に答える 2

1

はい、「分岐なし」は切り離されたHEADを意味します

ベースリビジョンは、実行することから来ます

git merge-base <yourrevision> master

ベース バージョンを確立するために、最後の共通の祖先 (または、手動の競合があった場合でも共通の祖先と見なされるマージ ポイント) を調べます。

リベース後、通常は常に新しい切り離された HEAD、IIRC にいます。現在、リベースを呼び出す方法は多数あり (--onto --root を含む)、動作が若干異なる場合があります。したがって、使用した rebase コマンドを投稿したい場合は、私の考えを確認し、コメントを追加するかもしれません。

于 2011-06-02T23:41:03.210 に答える
0

ここに示すように、このエラー メッセージは通常、競合の兆候です。

競合はそれ自体では解消されませんが、この場合、競合を修正して続行し、元のパッチ「別のメッセージを追加しました」自体が変更されます。

$ vi main.c
$ git add main.c
$ git rebase --continue

重要なのは、競合を修正した後、リベースを続行することです。

于 2012-11-22T11:37:06.200 に答える