1. ホーム
  2. git

[解決済み] Gitのリベースが競合している最中に「彼らの」変更を取得する方法とは?

2022-03-24 03:59:07

質問

競合するブランチがあります。 feature_x から分岐した main .

例えば、リベースの際に feature_x 現在の main を、コンフリクトを解消しつつ、取ることにしました。 いくつかの の(全てではありませんが)、quot;their" (すなわち main ) ファイルをそのまま使用することができます。 どうすればいいのでしょうか?

試してみました。

git checkout main:foo/bar.java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.java
  
git checkout refs/heads/main:foo/bar.java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java

解決方法は?

使用したい。

git checkout --ours foo/bar.java
git add foo/bar.java

ブランチをリベースした場合 feature_x に対して main (を実行する)。 git rebase main ブランチ中に feature_x ), リベース時 oursmaintheirs から feature_x .

で指摘されているように git-rebase docs :

リベースマージは、各コミットを再生することで動作することに注意してください。 ブランチの上に作業ブランチを置く。このため マージコンフリクトが発生した場合、こちら側として報告されるのは、今のところ リベースされた系列は <upstream> で始まり、そちらは作業中の ブランチです。つまり、左右が入れ替わってしまうのです。

詳細はこちら このスレッドを読む .