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



>当我运行时git diff --name-status我看到这样的台词:

MM  mm/Jenkinsfile

"MM"是什么意思?

mkreiger1的"可能的重复"确实提供了有用的信息,但就像Koop4的答案一样,它没有引用回答这个特定问题的git文档。

在哪里具体描述了多个字母(如"M")?"可能的重复"描述了原因(并为此表示感谢),但这在哪里记录?

正如文档所解释的那样,该选项

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

短格式是一个由路径分隔的两个字母的状态代码:

XY PATH

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

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

  • 对于未跟踪的路径,XY 是??.

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

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

您可以在相关部分中阅读有关短格式状态的更多信息。

在 Git 2.30.1(2021 年第 1 季度)中,文档更加清晰:

参见提交 4eb56b5(2021 年 1 月 10 日),作者:Brian M. Carlson (bk2204).
(由 Junio C Hamano --gitster-- 合并于 2021 年 1 月 15 日提交 644d85e)

docs:改写和澄清git status --short格式

签名者:布莱恩·卡尔森

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

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

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

git status现在在其手册页中包含:

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

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

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

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

最新更新