git status:啥是 UU,为啥要 add/rm 修复它?

Posted

技术标签:

【中文标题】git status:啥是 UU,为啥要 add/rm 修复它?【英文标题】:git status: what is UU and why should add/rm fix it?git status:什么是 UU,为什么要 add/rm 修复它? 【发布时间】:2011-12-29 17:25:09 【问题描述】:

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

最近的步骤:

    远程开发分支分歧 获取远程开发分支 隐藏我想保留的本地功能分支的分歧变化 Rebased 来自本地开发分支的功能分支 隐藏弹出功能分支更改 存储应用功能分支更改

结果:

$ 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 在这种情况下会起作用。

【问题讨论】:

另见new Git 2.31 (Q1 2021) documentation 【参考方案1】:

git status手册:

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

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

U = 已更新但未合并

所以UU的意思是:未合并,都修改了

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

【讨论】:

以上是关于git status:啥是 UU,为啥要 add/rm 修复它?的主要内容,如果未能解决你的问题,请参考以下文章

git 命令 git status add rm commit mv

20180616_Git???????????????1(init???status???add ??? commit)

为啥有人应该在 git commit 之前使用 git add?或者为啥有人应该使用 git add 呢?

痞子衡嵌入式:第一本Git命令教程- 编辑(status/add/rm/mv)

GIT03_初始化init查看状态status添加add删除rmcommit提交历史版本reflog忽略文件gitignore

idea为啥我的文件不能add给git