【问题标题】:how to get list of conflicted files before merging?如何在合并前获取冲突文件列表?
【发布时间】:2017-10-11 13:37:17
【问题描述】:

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

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

有没有像 git -conflitcs-with-this-branch 这样的 git 命令?以及从 nodejs 中检索它的方法?

谢谢,

史蒂芬。

【问题讨论】:

    标签: node.js git merge tree-conflict


    【解决方案1】:

    查找合并冲突的命令是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的退出状态,我不知道。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-22
      • 2016-10-27
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多