Git。在本地主分支之上重新设置本地分支。我如何忽略单个文件的更改?

11

使用 Git,我在一个分支上。我正在将该分支重新定位到主分支之上。出现了一个冲突,我希望通过忽略分支版本并接受主分支的版本来解决冲突。在重新定位过程中,我怎样指示我想使用主分支的文件版本?


你目前在哪个分支上? - Anjaneyulu Battula
3个回答

16

git checkout --ours <path-to-file>是您要寻找的命令。

它将检出文件的master版本,然后您可以将其添加到索引(标记冲突已解决)并继续重新设置基础。

您可以查看checkout文档获取更多信息。

请参阅--merge下面的注释,了解为什么需要使用--ours而不是--theirs


1
没错,完美的。谢谢Zeeker。 - dugla
如果他正在将<branch>变基到主分支上,那么"--ours"会指向主分支文件,对吗? - Andrew C
@AndrewC 你是正确的,在 http://git-scm.com/docs/git-rebase#_options 的评论中,暗示了这一点。因此,在变基时,应该使用 git checkout --ours <file> 来保留远程/主文件。 - Samuel Parkinson
1
谢谢你提醒我,没有人是完美的,而且今天是漫长的一天。 :) - Sascha Wolf
这里发生了一些严肃的 Git 技巧,各位。 - dugla

2

1

如果你想用“theirs”覆盖所有本地更改,可能是因为有人删除了本地分支所引用的提交并添加了一个新的提交,而你正在进行rebase操作,以便git尝试将(旧的提交+你的提交)应用在theirs之上。

在这种情况下,请使用git rebase -i remote-branch并注释掉旧的提交。

希望这可以帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接