GIT 2 个或多个 merge 冲突在单个文件中 - p4merge 如何处理?

标签 git conflict git-merge p4merge merge-conflict-resolution

  1. GIT p4merge - 同一文件中有 2 个或更多冲突

我已经将 p4merge 与 GIT 集成,我遇到过一次这种情况。

我有一个存在 merge 冲突的文件。文件 say foo.c 在 3 行不同的代码中有 merge 冲突(第一行有冲突,中间有几行有冲突)。

当我解决第一行冲突(而不是其他冲突行)并保存(使用 p4merge 上的保存按钮)时,我猜它会将 foo.c 添加到索引中,并且当我提交时,git 允许我提交而不给给我一个错误或警告来解决同一文件中的其他冲突行。

这是 GIT 或 p4merge 的问题吗?我认为 GIT 应该警告或错误指出文件中还有其他冲突行。但它只是提交。


  1. 在 GIT 中 merge 特定文件

我的另一个问题是是否有命令可以让开发人员 merge 某个文件?当我运行 git mergetool 时,它会一个接一个地打开所有 merge 冲突,有没有像 clearcase 这样的方法,我可以说 merge 这个选定的文件?

最佳答案

  1. 我的猜测:当您在 p4merge 中保存文件时,它会返回代码 0,文件已更改,并且 git 假定冲突已解决。有一个配置参数 mergetool.<tool>.trustExitCode (在你的例子中是 mergetool.p4merge.trustExitCode),它可以设置为 false,所以 git 在运行 git mergetool 后总是会询问你 merge 是否成功。 (这可能很烦人)。您也可以为 p4merge 编写包装器这将在运行后检查冲突标记的存在 p4mege , 或 pre-commit hook,它拒绝包含包含此类标记的文件的提交,尽管我从未做过类似的事情。

  2. 是的,你可以运行 git mergetool <file>解析指定的文件。了解更多 here .

关于GIT 2 个或多个 merge 冲突在单个文件中 - p4merge 如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067202/

相关文章:

git - 你如何用sourcetree恢复?

javascript - - 已解决 - Javascript 'onMouseMove'/CSS :hover conflict

git - 在公开共享的分支上 git reset --HARD 的后果?

merge 提交的 Git 精选需要本地解析 - Azure Devops git

java - 如何在现有存储库上使用 JGit 从源 pull

javascript - Jquery 和 Prototype 冲突

javascript - 如何在单个 js 文件中包含 jQuery 库而不干扰现有库

git - 为什么我不必在 git merge 之后提交

Git:定期 merge/重新设置长期存在的错误修复分支以掌握

git - 以下 Git 提交策略正确吗?