假设从远程分支运行git pull --rebase
,这会导致合并到.的文件中出现大量冲突
有没有一种快速的方法可以不用繁琐的文件编辑(一些git命令?),只需从远程分支获取所有备选方案,而忽略本地分支对给定文件的备选方案?
不是,不是,一般来说这是不明智的。不过,你可以给自己写一个脚本:
- 当rebase因冲突而停止时;我们的";以及";他们的";版本被留在索引/暂存区域中,同时Git试图解决工作树中的冲突
- 因此,";所有";您需要做的是提取每个此类文件的
--theirs
版本,您可以使用git restore
(如果您的Git早于Git 2.23,则可以使用旧的git checkout
)执行此操作 - 您可以在带有
git ls-files --stage
的索引中找到这样的文件
编写一个脚本,运行git ls-files --stage
,查找存在于三个非零暂存槽中的文件,并使用git restore
和git add
将工作树副本替换为每个文件的槽-3(--theirs
)版本。
请注意,这会破坏你在这些文件中所做的任何工作,即使它没有冲突;因此,它可能会产生完全伪造的文件混合(因为您处理的一些文件可能没有任何冲突,因此可能会带来它们的更改)。
(如果你的意思是"合并,但使用-X theirs
",那么是的:只通过-X theirs
。这不那么激烈,但并不总是明智的。从文档中也很明显,这就是为什么我认为你不是这个意思。)