是否可以git status
并仅显示已修改的文件?
问题是我有太多的暂存文件,我现在不想提交或gitignore,我无法向上滚动。我在Ubuntu上设置了回滚限制。
答案 0 :(得分:221)
您无法使用git status
执行此操作,但可以使用git ls-files -m
来显示所有已修改的文件。
答案 1 :(得分:47)
看起来git status -uno
只显示git正在跟踪的文件,而不显示目录中的任何其他内容。不完全是你要求的,但也许完成同样的事情(得到一个可读长度的git轨道文件列表)。
答案 2 :(得分:26)
git status -s | awk '{if ($1 == "M") print $2}'
答案 3 :(得分:23)
对于修改过的文件:
git status | grep modified:
答案 4 :(得分:8)
git diff --name-only --diff-filter=M
答案 5 :(得分:6)
git diff --name-only
也有效。
答案 6 :(得分:3)
我一直在寻找相同的信息,发现以下给出了修改后的文件:
git status -uno
答案 7 :(得分:2)
要列出修改后的文件,请使用:
git ls-files -m
如果您只想要基本名称(无路径),那么您可以使用xargs逐行将每个结果传递给basename命令:
git ls-files -m | xargs -L 1 basename
答案 8 :(得分:1)
我使用以下命令:
$ git status -uno -sb
输出看起来像这样:
## master...origin/master
M GNUmakefile
M include/mp4v2/project.h
答案 9 :(得分:0)
我使用git cola
。它是一个简单而优雅的UI客户端,它将向您显示已修改的文件,并为您提供所做更改的差异镜头。
git cola
为您提供了一个GUI,您可以在其中可视化您修改的文件,您上演的文件,甚至是您不跟踪的文件。你的问题是我只相信使用git状态,但我认为git cola可以帮助那些和其他东西。从更多信息中查看此网页:git-cola.github.com/screenshots.html
答案 10 :(得分:0)
如果您要列出已修改文件,可以执行以下操作:
formcontent
答案 11 :(得分:0)
要列出所有已修改的文件,请使用:
git show --stat --oneline HEAD
答案 12 :(得分:0)
所有好的答案;只是FEI,“ git checkout”(切换到同一分支或在同一分支中)似乎仅显示已修改的文件。
答案 13 :(得分:0)
您可以使用
$ git status -uno
仅列出修改过的文件。
答案 14 :(得分:0)
问题是我目前暂无太多暂存文件或gitignore,无法向上滚动。
虽然这可能无法直接回答仅列出已修改文件的问题,但可能有助于限制列出的文件数量。
您可以将路径传递到git status
,以将输出限制到存储库中的特定文件夹。
例如:
git status app
git status spec
git status src/components
答案 15 :(得分:0)
以下命令将显示包含“已修改:” ,“已重命名:” 或“新文件:”
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: