我正在做一个例程,在每次合并之前执行。它将运行单元测试并检查其他配置文件。仅供参考,它在节点中编码。如何在合并之前获取冲突文件列表?
最后,如果一切正常,它会检查是否与develop
有冲突,并且只输出yes
或no
给用户。 Pull请求应该在gitlab上管理,而不是在本地分支上。所以不应该在当地分公司进行“真正的”合并。
是否有像git -conflitcs-with-this-branch
这样的git命令?还有一种从nodejs中检索它的方法?
谢谢,
Stéphane。
我正在做一个例程,在每次合并之前执行。它将运行单元测试并检查其他配置文件。仅供参考,它在节点中编码。如何在合并之前获取冲突文件列表?
最后,如果一切正常,它会检查是否与develop
有冲突,并且只输出yes
或no
给用户。 Pull请求应该在gitlab上管理,而不是在本地分支上。所以不应该在当地分公司进行“真正的”合并。
是否有像git -conflitcs-with-this-branch
这样的git命令?还有一种从nodejs中检索它的方法?
谢谢,
Stéphane。
查找合并冲突的命令是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在整个期间内都是安全的。 (特别是索引和工作树必须在过程开始时是“干净的”,如果没有合并驱动程序,就会在最后清理干净。)
(How to从node.js获得git merge
的退出状态,我不知道。)