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

Dyl*_*ade 10 git github git-stash git-rebase git-add

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

最近的步骤:

  1. 远程开发分支分道扬..
  2. 获取远程开发分支
  3. 隐藏的本地功能分支的分歧我想要保留
  4. 重订本地开发分支特性分支
  5. Stash Popped功能分支更改
  6. Stash Apply功能分支更改

结果:

$ 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
#
Run Code Online (Sandbox Code Playgroud)

和状态 -s

$ git status -s
UU foo/conflict.php
M  foo/bar.php
M  foo/baz/php
Run Code Online (Sandbox Code Playgroud)

git建议addrm解决冲突.什么UU意思,为什么这些是解决它的选择?

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

UU在git手册页中找不到任何相关内容,但是有这个问题似乎也很难理解为什么add在这种情况下会起作用.

man*_*lds 16

git status手册:

在短格式中,每个路径的状态显示为XY PATH1 - > PATH2

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

U =已更新但未合并

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

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