我有冲突的分支,feature_x从main分支出来。

比方说,当把feature_x重新基于当前的主文件时,在解决冲突的同时,我决定采用一些(不是全部)“他们的”(即主文件)文件。 我怎么做呢?

我试着:

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 branch1 -- filenamefoo.txt

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

其他回答

你想要使用:

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

如果你根据main对一个分支feature_x进行重基(即在分支feature_x上运行git rebase main),在重基过程中,我们的指的是main,而他们的指的是feature_x。

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

方法中的每次提交都要重放 在树枝上工作的树枝。正因为如此,当 合并发生冲突,目前报我方的是 重基系列,从<upstream>开始,他们的是工作 分支。换句话说,两边互换了。

更多细节请阅读这篇文章。

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

git checkout branch1 -- filenamefoo.txt

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