是否可能有git状态只显示修改的文件,因为在我的情况下,有太多的阶段性文件?


你不能用git status来这样做,但是你可以使用git ls-files -m来显示所有修改过的文件。


看起来git status -uno只会显示git正在跟踪的文件,而不会显示目录中的其他内容。这并不完全是您所要求的,但可能完成了相同的事情(获得git跟踪的可读长度的文件列表)。


我用吉特可乐。这是一个简单而优雅的UI客户端,它会向你显示修改后的文件,并为你提供一个不同的镜头,你所做的改变。

git cola为您提供了一个GUI,您可以在其中可视化您修改了哪些文件,放置了哪些文件,甚至那些您没有跟踪的文件。你的问题是使用git状态,我相信,但我认为git可乐可以帮助时,以及其他事情。查看此网页更多信息:git-cola.github.com/screenshots.html


git status -s | awk '{if ($1 == "M") print $2}'

对于已修改的文件:

git status | grep modified:

Git diff -name-only也适用。


如果你想列出修改过的文件,你可以这样做:

git log -n1 --oneline --name-status | grep '^M'

git diff——name-only——diff-filter=M


要列出修改过的文件,请使用:

git ls-files -m

如果你只想要basename(没有路径),那么你可以使用xargs将每个结果一行一行地输送到basename命令:

git ls-files -m | xargs -L 1 basename

要列出所有修改过的文件,使用:

git show --stat --oneline HEAD

我正在寻找相同的信息,发现以下给出修改文件:

git status -uno

都是很好的答案;只是FEI,“git checkout”(切换到或在同一分支)似乎只显示修改过的文件。


你可以使用

$ git status -uno 

只列出修改过的文件。


问题是我有太多的阶段性文件,我不想提交或gitignore的时刻,我不能向上滚动。

虽然这可能不能直接回答只列出修改过的文件的问题,但它可能有助于限制列出的文件数量。

您可以传递一个路径到git状态,以限制输出到repo中的特定文件夹。

例如:

git status app
git status spec
git status src/components

我使用这个命令:

$ git status -sb -uno | grep -v "^\sD\s"

输出如下所示:

## master...origin/master
 M GNUmakefile
 M include/mp4v2/project.h

一种替代方法是通过-s将结果放在一行上,这可以限制显示的内容。

git status -s

显示在窗口终端与电力线/时髦的git。


这个命令非常方便,我添加了它作为git stati的别名

[alias]
   stati = !git status -s

所有的答案都很棒,但Git已经发展,现在提供了一个开箱即用的解决方案,只获得更改文件的名称(包括untracked)

git status --short

如果您需要脚本友好的输出,请使用推荐的—porcelain标志

git status --short --porcelain