GIT合并成功但引入了编译错误

时间:2014-08-12 17:25:06

标签: git

我必须找到git成功合并文件的情况,但合并后程序中存在编译错误。

有没有办法做到这一点!!

我知道git使用最长的公共子序列进行合并。

我做了很多试验,但无法找到。

如果有人知道....请帮助

3 个答案:

答案 0 :(得分:5)

Git合并偶尔会产生非工作代码而不会产生任何冲突。想象一下:

  • 开发人员A在他正在处理的代码中添加对函数foo的调用。
  • 开发者B修改函数foo的函数签名,或重命名/删除函数。
  • 开发者A合并了B的更改。

现在A的函数调用与B的更改不兼容,但是git不知道,因为它们位于不同的模块中。

在这种情况下,您应该做的是检查合并后的更改,并根据需要修复代码。 (这也是为什么你应该尽可能缩短功能分支的原因,特别是如果你试图向上游提交补丁)。

答案 1 :(得分:1)

你确定合并引入了错误吗?在合并之前签出版本并检查它是否编译。如果找不到有效的提交,请查看bisect command以查找违规提交。

如果合并引入了错误,您可以使用git diff来区分合并和最后一次工作提交,并查看合并所做的更改。

否则当然合并有时可能会引入错误和错误,因为它可以处理文件内容而无需了解内容的意图。唯一的方法是手工修复它。

答案 2 :(得分:1)

当您执行合并时,如果您遇到冲突,git会通知您。然后由代码维护者来仔细解决冲突。

现在,您可以做的是在合并之前对提交进行硬重置(在尝试合并之前为HEAD),然后再次执行合并,确保此次正确解决冲突。 / p>

执行git日志并获取最后一个稳定提交的id,然后执行 -

git reset --hard <commit id>

(你也可以恢复合并提交,但现在你可以重置HEAD

现在进行合并并解决冲突。如果你在团队中工作,如果你不是特别了解你的队友,那么变化,收集它们并解决冲突会更好。

一切顺利。