Git暂存文件列表

Git暂存文件列表,git,git-diff,git-status,git-stage,Git,Git Diff,Git Status,Git Stage,我使用git add暂存了很多文件,现在我想查看我暂存的所有文件,没有未跟踪的文件或已更改但未暂存的文件 我该怎么做?当使用git diff--cached时,我可以看到我刚刚准备的内容的变化。因此,我尝试使用git status--cached,但不幸的是,--cached在git status上不起作用,最好的方法是运行以下命令: git diff --name-only --cached 检查手册时,您可能会发现以下内容: --name-only Show only names

我使用git add暂存了很多文件,现在我想查看我暂存的所有文件,没有未跟踪的文件或已更改但未暂存的文件


我该怎么做?当使用
git diff--cached
时,我可以看到我刚刚准备的内容的变化。因此,我尝试使用
git status--cached
,但不幸的是,
--cached
git status

上不起作用,最好的方法是运行以下命令:

git diff --name-only --cached
检查手册时,您可能会发现以下内容:

--name-only
    Show only names of changed files.
在手册中:

git diff --cached
    Changes between the index and your current HEAD.
结合在一起,您可以得到索引和当前头之间的
更改
并且
只显示更改文件的名称。

更新:
--staged
也可以作为上述较新git版本中的
--cached
的别名使用。

您可以尝试使用:-
git ls files-s

只需键入
git status
即可提供暂存文件列表、已修改但未暂存文件列表和未跟踪文件列表。类似于:@houtanb,
git status
显示差异。(它不会显示所有暂存文件)。这非常有用,因为它允许您获取一个文件名列表,然后(在我的例子中)将这些文件名通过管道传输到预提交挂钩中的一个linter。如果您使用
git add-N[files]
添加文件,这也包括这些文件,即使它们实际上尚未准备提交。因此,这并不是我们想要的预提交hook.re“last commit”;误导更好的说法是,
git diff--cached
git diff--cached head
@Pacerier的缩写,很好!修正了,这太好了。如何让它显示相对于当前工作目录而不是相对于存储库根目录的路径?这并不能回答这个问题,或者参考页面右侧的相关和链接问题以找到答案。如果您有一个相关但不同的问题,并包含指向此问题的链接以帮助提供上下文。见: