如何在冲突的 Git rebase 中获取“他们的”更改?

问题描述 投票:0回答:2

我有冲突的分支,

feature_x
main
分支。

假设在当前

feature_x
的基础上重新调整
main
时,在解决冲突时,我决定按原样获取“他们的”(即 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 rebase git-rebase
2个回答
657
投票

您想使用:

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

如果您将分支

feature_x
main
进行变基(即在分支
git rebase main
上运行
feature_x
),则在变基期间,
ours
指的是
main
theirs
指的是
feature_x

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

请注意,变基合并通过重播来自 工作分支位于分支顶部。正因为如此,当 发生合并冲突,报告为我们的一方是迄今为止的 rebased 系列,从 开始,他们的就是工作中的 分支。换句话说,双方交换了。

欲了解更多详情,请阅读此帖子


9
投票
如果您想从另一个分支中提取特定文件,只需这样做

git checkout branch1 -- filenamefoo.txt

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

© www.soinside.com 2019 - 2024. All rights reserved.