如何在冲突的Git rebase中获得“他们的”变化?

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-13 21:03:03

我有分支冲突,branch2从branch1分支。

让我们说当在当前branch2上重新定位branch2时,在解决冲突时,我决定按branch1使用一些 (不是全部)“他们的”(即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

#1楼

你想用:

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

如果你将一个分支feature_x反对master (即在分支feature_x上运行git rebase master ),在git rebase master期间ours指的是mastertheirsfeature_x

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

请注意,rebase合并的工作原理是从分支顶部的工作分支重放每个提交。 因此,当合并冲突发生时,报告为我们的那一方是迄今为止重新定义的系列,从<upstream>开始,他们是工作分支。 换句话说,双方交换。

有关详细信息,请阅读此主题


#2楼

如果你想从另一个分支中提取特定文件,那就行了

git checkout branch1 -- filenamefoo.txt

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!