【问题标题】:Git add new files but do not resolve conflictsGit 添加新文件但不解决冲突
【发布时间】:2017-02-08 04:38:29
【问题描述】:

我正在寻找一种可以自动添加所有新文件但不将冲突标记为已解决的方法。

我已经设置了一些 ant 脚本来执行基本的 Git 功能,以帮助非开发人员处理日常操作。这样做了一段时间,并决定让“提交”脚本自动添加新文件是安全的。简单,只需在提交前让脚本执行git add --all

除了将任何冲突标记为已解决的意外副作用之外,我绝对不想这样做。冲突应保持未解决,以便用户知道有问题并询问我如何处理。

令人惊讶的是,似乎没有使git add 不标记已解决冲突的选项。我将做一些实验,看看脚本需要寻找什么来确定冲突解决方案正在进行中并检查它。但是我想我会问人们是否有更简单的方法来做到这一点。

【问题讨论】:

    标签: git git-add


    【解决方案1】:

    只有当您从服务器中提取某些内容时才会出现冲突 - 例如进行变基或合并 - 变基或合并如何在不解决冲突的情况下继续进行?解决此问题的最佳位置是在本地分支中重新设置或合并某些内容时。

    【讨论】:

      【解决方案2】:

      冲突可能以两种方式发生:在合并期间和在变基期间。可以安全地假设,如果其中任何一个正在进行,我们就不想自动提交任何内容。

      解决方案,以 脚本的形式:

      #!/bin/bash
      git merge HEAD &> /dev/null
      result=$?
      if [ $result -ne 0 ]
      then
        echo "Merge in progress."
        echo "Please resolve any conflicts and complete the merge!"
      elif [ -d .git/rebase-merge -o -d .git/rebase-apply ]
      then
        echo "Rebase in progress."
        echo "Please resolve any conflicts and complete the rebase!"
      else
        # Original commit script goes here. E.g.:
        git add --all
        git commit -m "auto commit"
      fi
      

      (从How to determine if Git merge is in processHow to know if there is a Git rebase in progress 汇总。)


      我还想鼓励您考虑将此作为临时解决方案。通过少量培训,即使是非开发人员也应该能够处理大多数常规 Git 操作,尤其是使用 GUI 前端(例如 SourceTree)。

      【讨论】:

        猜你喜欢
        • 2012-04-07
        • 2011-05-18
        • 2015-09-23
        • 1970-01-01
        • 2011-10-05
        • 2010-09-21
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        相关资源
        最近更新 更多