Bazaar有一个方便的bzr resolve
命令,它会递归地将冲突的文件标记为已解决,但前提是它们的冲突标记已被删除。 git是否有等效的命令或脚本?
我的存储库包含缩小的Javascript(我知道跟踪已编译的文件并不理想),这些Javascript经常在合并后发生冲突,即使未缩小的源合并得很干净。它可以通过重新缩小和解决来轻松修复,并且不需要任何手动冲突解决。我的团队正在从Bazaar迁移到Git,我们依靠bzr resolve
智能处理带有冲突标记的文件:在缩小后盲目地在项目根目录上运行它是安全的。在将来,我想自动化这个过程并完全从存储库中获取已编译的代码,但是现在我正在寻找一种方法来反映我们在Git中的当前进程。
我知道git diff --check
会报告剩余的冲突标记,但在运行git add
之前运行它并检查其输出仍然需要额外的努力。并且运行一个寻找冲突标记的预提交钩子是不理想的,除非钩子也可以解除有问题的文件并将它们标记为未解析(我还没有发现如何做)。还有更好的选择吗?
答案 0 :(得分:1)
您应该尝试git mergetool
。它重新运行合并,但它使用您选择的合并工具以交互方式完成,并在您完成后自动分段文件。
答案 1 :(得分:0)
当你在合并或rebase期间在git中遇到冲突时,没有冲突的文件会自动被暂存,它只是你需要担心的冲突文件,即解决冲突并手动分级。无需解析没有冲突标记的文件,它们已经解决。
答案 2 :(得分:0)
解决此类冲突时,您可以使用以下命令之一:
git checkout --theirs <filename>
(或ours
代替theirs
(如果您更喜欢本地更改)选择正确的版本,甚至自动为整个合并执行:
git merge -s recursive -Xtheirs
(或分别为-Xours
)
这是一个答案,我在问题中找到了:git merge recursive theirs, how does it work?