如何得到“their”;在冲突Git rebase中间的变化?

我有冲突的分支,feature_xmain分支。

让我们说,当基于当前的main重基feature_x时,在解决冲突时,我决定取一些(不是全部)的"their"(即main)文件原样。 我怎么做呢?< / p >

我试着:

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
224023 次浏览

如果您想从另一个分支提取特定的文件,就这样做

git checkout branch1 -- filenamefoo.txt

这将把文件的一个版本从一个分支拉到当前树中

你想要使用:

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

如果你根据main对分支feature_x进行重基(即在分支feature_x上运行git rebase main),在重基过程中ours将引用main,而theirs将引用feature_x

正如git-rebase文档中指出的那样:

注意,rebase merge的工作原理是重放每次提交 在树枝上工作的树枝。正因为如此,当 合并发生冲突,目前报我方的是 重新改编的系列,从<上游>开始,他们是工作 分支。换句话说,两边被交换了

详细信息阅读这篇文章