git status:什么是UU以及为什么要添加/ rm修复它?

时间:2011-11-15 17:07:13

标签: git github git-rebase git-stash git-add

以下是此功能分支的当前状态。

最近的步骤:

  1. 远程开发分支分歧
  2. 提取远程开发分支
  3. 隐藏本地功能分支我想要保留的分歧
  4. 来自本地开发分支的
  5. 重新功能分支
  6. 隐藏弹出功能分支更改
  7. 隐藏应用功能分支更改
  8. 结果:

    $ git status
    # On branch feature-foo-branch
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #   modified:   foo/bar.php
    #   modified:   foo/baz.php
    #
    # Unmerged paths:
    #   (use "git reset HEAD <file>..." to unstage)
    #   (use "git add/rm <file>..." as appropriate to mark resolution)
    #
    #   both modified:      foo/conflict.php
    #
    

    以及-s

    的状态
    $ git status -s
    UU foo/conflict.php
    M  foo/bar.php
    M  foo/baz/php
    

    git建议使用addrm来解决冲突。 UU的意思是什么?为什么选择它来修复它?

    我能找到的解决与此类似的冲突的所有信息都说不使用rm,这让我想知道为什么git认为这是合适的。

    我在git手册页中找不到关于UU的任何内容,但是这个SO question似乎也很难找出add在这种情况下可行的原因。

1 个答案:

答案 0 :(得分:13)

请参阅git status手册:

在短格式中,每条路径的状态显示为 XY PATH1 - &gt; PATH2

对于具有合并冲突的路径,X和Y显示合并每一侧的修改状态。对于没有合并冲突的路径,X显示索引的状态,Y显示工作树的状态。对于未跟踪的路径,XY是??

U =已更新但未合并

所以UU意味着:未合并,都被修改

我认为add或rm消息是未合并状态的通用消息,其中状态可以是unmerged, both deletedunmerged, deleted by them等等,因此建议rm。这就是建议中as appropriate的原因。