競合するブランチがあり、branch2がbranch1から分岐しています。
branch2
を現在のbranch1
にリベースするときに、競合を解決しながら、some(すべてではない) "their"(つまりbranch1
)ファイルを取得することにしますそのまま。それ、どうやったら出来るの?
私は試した:
git checkout branch1:foo/bar.Java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.Java
git checkout refs/heads/branch1: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
master
に対してブランチfeature_x
をリベースする(つまり、ブランチgit rebase master
上でfeature_x
を実行する)場合、リベース中にours
はmaster
を、theirs
はfeature_x
を参照します。
git-rebaseのドキュメント で指摘されているように、
リベースマージは、作業ブランチから各コミットをブランチの一番上に再生することによって機能します。このため、マージの競合が発生したとき、私たちのものとして報告されているのは<upstream>から始まるこれまでにリベースされたシリーズであり、彼らのブランチは作業中のブランチです。言い換えれば、辺が入れ替わっています。
詳細については このスレッドを読んでください 。
あなたが他のブランチから特定のファイルを引っ張りたいならば、ちょうどしなさい
git checkout branch1 -- filenamefoo.txt
これは、あるブランチから現在のツリーにファイルのバージョンを引きます。