如何判断我的git回购协议是否存在冲突?

如何判断我的git回购协议是否存在冲突?,git,git-merge-conflict,Git,Git Merge Conflict,我是否可以通过编程调用命令来确定我的git repo是否处于以下状态: 合并冲突 重新基址冲突 隐藏流行音乐引起的冲突 特别是,我想知道是否可以通过编程发出git merge--abort(在1的情况下)和git rebase--abort(在2的情况下)返回到已知的良好状态 在合并过程中,文件merge\u HEAD、merge\u MODE和merge\u MSG存在于.git文件夹中 在重新设置基础期间,rebase apply文件夹存在于.git文件夹中。请参阅及其答案 stash po

我是否可以通过编程调用命令来确定我的git repo是否处于以下状态:

  • 合并冲突
  • 重新基址冲突
  • 隐藏流行音乐引起的冲突
  • 特别是,我想知道是否可以通过编程发出
    git merge--abort
    (在1的情况下)和
    git rebase--abort
    (在2的情况下)返回到已知的良好状态

  • 在合并过程中,文件
    merge\u HEAD
    merge\u MODE
    merge\u MSG
    存在于
    .git
    文件夹中
  • 在重新设置基础期间,
    rebase apply
    文件夹存在于
    .git
    文件夹中。请参阅及其答案
  • stash pop
    执行合并,但不是真正的合并。
    .git
    文件夹的内容似乎与往常一样。我不完全确定,但由于无法中止从隐藏中进行的合并(类似于
    git stash pop--abort
    之类的操作无法完成,如果要中止,必须使用良好的ol'
    git reset--hard HEAD
    ),我认为存储库并没有处于真正的“冲突状态”。您所拥有的只是冲突文件中的冲突标记

  • 谢谢你的回答。关于3,我刚刚建立了一个回购协议,其中有一个简单的
    隐藏pop
    冲突,并且没有任何
    合并
    文件实际存在。编辑了我的答案,但是仍然不能完全确定是否有更好的方法用于3。git中肯定有一些不同的东西,因为如果我尝试将
    签出到另一个分支,我会得到
    错误:您需要首先解析当前索引。
    。我猜相关信息存储在
    .git/index
    中,但我不知道如何解析那个文件。它似乎是二进制的。
    checkout HEAD
    似乎是区分
    stash pop
    冲突和无冲突的好方法。