如何在合并之前获取冲突文件列表?

时间:2017-10-11 13:37:17

标签: node.js git merge tree-conflict

我正在制作一个例程,在每次合并之前执行。它将运行单元测试并检查其他配置文件。仅供参考,它在节点中编码。

最后,如果一切正常,它会检查是否与develop发生冲突,并向用户输出yesno。拉请求应该在gitlab上管理,而不是在本地分支上。因此,本地分支上不应该有“真正的”合并。

是否有像git -conflitcs-with-this-branch这样的git命令?还有一种从nodejs中恢复它的方法吗?

谢谢,

斯特凡。

1 个答案:

答案 0 :(得分:2)

发现合并冲突的命令是git merge。运行git merge,可选择--no-commit,也可以选择在分离的HEAD上运行。

如果存在冲突,git merge将退出非零状态。如果没有冲突,git merge退出状态为零。如果使用--no-commit运行,Git在任何一种情况下都不提交;如果在没有它的情况下运行,Git会在当前HEAD上进行合并提交。如果HEAD被分离,则此提交仅影响HEAD。

如果您使用了分离的HEAD,现在可以将HEAD重新附加到其原始分支或提交。

如果您使用--no-commit,则只需运行git merge --abort,无论合并是成功还是失败。

因此,最简单的命令序列是运行git merge --no-commit,保存退出状态,然后运行git merge --abort

请注意,在所有情况下,Git将在合并过程中使用索引和工作树,因此您必须确保Git在整个期间都可以使用它们。 (特别是索引和工作树必须是"干净"在流程开始时。如果没有合并驱动程序会留下混乱,它们也会在最后清理。)

(如何从node.js获取git merge的退出状态,我不知道。)