我有太多暂存文件,是否有可能使git status
仅显示由此导致的修改文件?
我有太多暂存文件,是否有可能使git status
仅显示由此导致的修改文件?
使用 git status
无法完成此操作,但您可以使用 git ls-files -m
显示所有已修改的文件。
git status | grep modified
命令只查看修改过的文件。 - K. Alan Batesgit ls-files -m
没有显示任何东西,但 git status | grep modified
能够正常工作。 - Sandeepan Nathgit diff --name-only --diff-filter=M HEAD
将只显示已修改的文件,包括暂存和未暂存的文件,但你应该查看--diff-filter
文档,以了解其他可能需要添加的过滤器类型。 - Lily Ballard看起来 git status -uno
只会显示 git 正在跟踪的文件,而不会显示目录中的其他内容。虽然不完全符合你的要求,但也许达到了相同的目的(获取 git 跟踪的文件的易读列表)。
git status -u no
不会显示 (1) 已修改的跟踪文件,也不会显示 (2) 已暂存的跟踪文件。我已经在 git 版本 1.8.5.2 和 1.9.4 中验证了这一点。 - mxxkgit status -uno
(https://dev59.com/71rUa4cB1Zd3GeqPgxw0) - mxxk对于修改的文件:
git status | grep modified:
git config --global alias.modified'!git status | grep modified:'
- Richard Parnaby-Kinggit status -uno
。如果您更喜欢简洁的输出,则可以使用git status -s -uno
或者git status -suno
。注意:在-u
选项和其参数no
之间不要使用空格,这非常重要。 - Mr. Lance E Sloangit status -s | awk '{if ($1 == "M") print $2}'
awk '$1 == "M" { print $2 }'
的意思是在执行 awk 命令时,只输出以 M 开头的行的第二个单词。 - Calpaugit diff --name-only --diff-filter=M
git diff --cached --name-only --diff-filter=ACMR
,这会显示已添加(Added)、已复制(Copied)、已修改(Modified)和已重命名(Renamed)的文件。 - qwertzguygit diff --name-only
也能起到相同的作用。
标签
。$ git status -uno
我正在寻找同样的信息,发现以下内容提供了修改后的文件:
git status -uno
git status -uno --porcelain
为解析脚本添加了不错的输出. - pprzemek要列出修改过的文件,请使用:
git ls-files -m
如果您只想获取文件名(不包括路径),那么您可以使用xargs将每个结果逐行传输到basename命令:
git ls-files -m | xargs -L 1 basename
git status
,以将输出限制为存储库中特定文件夹。git status app
git status spec
git status src/components
git status
会调用分页器。 - Lily Ballard--short
或--porcelain
获取状态的单行版本。 - torekgit ls-files -m
的建议:你关心哪些修改,暂存的、未暂存的还是两者都包括? - torek