git:显示所有已修改的文件-已暂存和未暂存

fra*_*ans 5 git

我需要一个命令,该命令可以在脚本中使用的简单列表中为我提供所有已修改的文件 -包括暂存(即新添加的文件)和未暂存的更改。虽然这个问题听起来很熟悉,但我只能找到与我想做的事情接近的命令:

git ls-files -m
Run Code Online (Sandbox Code Playgroud)

..列出(非暂存)修改,但忽略暂存和新添加的文件

git diff --name-only
Run Code Online (Sandbox Code Playgroud)

..也只会列出非分阶段的修改

git diff --name-only --cached
Run Code Online (Sandbox Code Playgroud)

.. 列出分段修改,但忽略具有非分段修改的文件

git status --porcelain --untracked-files=no
Run Code Online (Sandbox Code Playgroud)

..输出我想查看的所有文件,但添加状态

git status当然可以使用cut第一个条目,但是由于我想将此命令集成到CMake脚本中,该脚本也将在Windows上使用。所以一个命令就可以了。

fra*_*ans 8

git diff --name-only HEAD
Run Code Online (Sandbox Code Playgroud)

看起来像我要找的东西 - 但我还不确定。如果有人提出一些详细说明,我会接受他/她的回答:)

  • 这会将工作树与 HEAD 的状态进行比较。它可能与您提出问题时的想法有所不同。区别在于当您修改文件、暂存文件,然后撤消工作树中的更改时。您希望如何处理此案? (3认同)