对于git diff --name-status,输出是什么意思?

时间:2019-02-22 14:02:56

标签: git

对于每个文件,我都会看到这样的一行:

MM  mm/Jenkinsfile

“ MM”是什么意思?

mkreiger1的“可能重复项”确实提供了有用的信息,但是像Koop4的答案一样,它无需引述回答该特定问题的git文档即可通知。

在哪里具体描述了多个字母(例如“ M”)? “可能的重复项”描述了为什么(并感谢您),但是在何处进行了记录?

2 个答案:

答案 0 :(得分:2)

Doc所述,该选项

  

仅显示更改文件的名称和状态。

短格式是由路径引起的两个字母的状态代码:

XY PATH

  • 对于具有合并冲突的路径,X和Y显示合并每一侧的修改状态。

  • 对于没有合并冲突的路径,X显示索引的状态,而Y显示工作树的状态。

  • 对于未跟踪的路径,XY为??。

其他状态代码可以解释如下:

' ' = unmodified
M = modified
A = added
D = deleted
R = renamed
C = copied
U = updated but unmerged

您可以在相关部分中详细了解short format状态。

答案 1 :(得分:1)

使用 Git 2.30.1(2021 年第一季度),文档更加清晰:

请参阅 commit 4eb56b5brian m. carlson (bk2204)(2021 年 1 月 10 日)。
(于 2021 年 1 月 15 日在 Junio C Hamano -- gitster --commit 644d85e 合并)

<块引用>

docs:改写并阐明 git status --short 格式

签字人:brian m.卡尔森

<块引用>

git-status(1) 中描述瓷器格式的表格很有帮助,但并不完全清楚这三个部分的含义,即使对于某些贡献者也是如此。

因此,用户无法找到如何以编程方式检测合并冲突等常见情况。

让我们改写一下,更明确地说明表格中每个部分的含义,以通俗易懂的语言告诉用户正在发生哪些情况,并描述“未合并”的含义,从而改善这种情况。

git status 现在包含在其 man page 中:

<块引用>

使用此格式显示三种不同类型的状态,以及 每个人都以不同的方式使用 XY 语法:

  • 发生合并并且合并成功时,或在合并之外 情况,X 显示索引的状态,Y 显示索引的状态 工作树。
  • 当发生合并冲突且尚未解决时,XY 显示合并的每个头引入的状态,相对于公共 祖先。
    据说这些路径未合并
  • 当路径未被跟踪时,XY 总是相同的,因为它们是 索引未知。 ?? 用于未跟踪的路径。
    忽略的文件是 除非使用 --ignored,否则不会列出;如果是,则指示忽略的文件 来自!!

请注意,这里的术语 merge 还包括使用默认值的变基 --merge 策略、精选以及其他任何使用合并机制的内容。

在下表中,这三个类分别显示在不同的部分中,并且 这些字符用于前两个部分的 XY 字段 显示跟踪路径: