git状态:UU是什么,为什么添加/删除会修复它?

14

这是该功能分支的当前状态。

最近的步骤:

  1. 远程开发分支分叉
  2. 获取远程开发分支
  3. 存储本地特性分支的分叉更改(我想保留)
  4. 从本地开发分支重新设置特性分支
  5. 弹出特性分支更改
  6. 应用特性分支更改

结果:

$ 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问题,该问题看起来也很难搞清楚为什么在这种情况下使用add会起作用。


请参阅 Git 2.31 (Q1 2021) 新文档 - VonC
1个回答

20

请查看 git status 手册:

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

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

U = 已更新但未合并

因此,UU表示:未合并,两侧都已修改

我认为添加或删除消息是未合并状态的通用消息,其中状态可以像 未合并,都已删除未合并,被他们删除 等等,因此建议使用 rm。这就是为什么建议中有 as appropriate 的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接