是否有可能 git status只显示修改过的文件?
问题是我现在有太多暂存文件,我不想提交或gitignore,而且我无法向上滚动。我在Ubuntu上设置了回滚限制。
--short或--porcelain获取状态的单行版本。
git ls-files -m:您关心,已分阶段,未分阶段或同时关心这两个修改?
是否有可能 git status只显示修改过的文件?
问题是我现在有太多暂存文件,我不想提交或gitignore,而且我无法向上滚动。我在Ubuntu上设置了回滚限制。
--short或--porcelain获取状态的单行版本。
git ls-files -m:您关心,已分阶段,未分阶段或同时关心这两个修改?
Answers:
您git status无法使用git ls-files -m来执行此操作,但可以用来显示所有已修改的文件。
git status | grep modified按照user23186在其答案中指示的方式“仅'git status'仅修改文件” 。
git ls-files -m什么也没显示,但是git status | grep modified正在起作用。
git diff --name-only --diff-filter=M HEAD会只显示已登台和未登台的修改文件,尽管您应检查文档--diff-filter以查看可能要添加的其他过滤器类型。
看起来git status -uno只向您显示git正在跟踪的文件,而未在目录中显示任何其他内容。并非完全符合您的要求,但可能完成了同一件事(获取git跟踪的文件的可读长度列表)。
git status -u no不会显示(1)已修改的跟踪文件,也不会显示(2)已暂存的跟踪文件。我已经使用git版本1.8.5.2和1.9.4对此进行了验证。
git status -uno(stackoverflow.com/questions/7008546/...)
对于修改后的文件:
git status | grep modified:
git config --global alias.modified '!git status | grep modified:'
要列出修改后的文件,请使用:
git ls-files -m
如果只需要基本名称(没有路径),则可以使用xargs逐行将每个结果通过管道传递给基本名称命令:
git ls-files -m | xargs -L 1 basename
我用git cola。它是一个简单而优雅的UI客户端,它将向您显示修改后的文件,并为您提供所做更改的差异。
git cola为您提供了一个GUI,您可以在其中可视化修改的文件,暂存的文件,甚至不跟踪的文件。您的问题是我只相信使用git status,但我认为git cola可以在需要时提供帮助。从更多信息中查看此网页:git-cola.github.com/screenshots.html
以下命令将显示包含“ modified:”,“ renamed:”或“ new file”的所有行。
git status | findstr "modified: renamed: new file:"
如果要指定文件类型:(例如*.py *.ini)
git status *.py *.ini | findstr "modified: renamed: new file:"
如果您认为输入太多太多麻烦:
创建一个批处理文件(例如:st.bat)
编写内容如下:
@echo off
:: st.bat (this line doesn't necessarily. ( just let you know the scripts name.))
git status %~1 | findstr "modified: renamed: new file:"
添加包含您的批处理文件的环境路径。(st.bat)
用法
st.bat "*.py *.ini"
(注意:如果类型> 1,则必须添加分号)
正如@Lance所说的,您可以尝试
git status | grep modified:
git status将调用寻呼机。