是否可以让
git status
仅显示修改后的文件,就我而言,由于暂存文件太多?
您无法使用
git status
执行此操作,但您可以使用 git ls-files -m
显示所有已修改的文件。
看起来
git status -uno
只会显示 git 正在跟踪的文件,而不显示目录中的其他任何内容。不完全是你所要求的,但也许完成同样的事情(获取 git 跟踪的文件的可读长度列表)。
对于修改后的文件:
git status | grep modified:
git status -s | awk '{if ($1 == "M") print $2}'
git diff --name-only --diff-filter=M
git diff --name-only
也有效。
你可以使用
$ git status -uno
仅列出修改过的文件。
要列出已修改的文件,请使用:
git ls-files -m
如果您只需要基本名称(无路径),则可以使用 xargs 将每个结果逐行通过管道传输到基本名称命令:
git ls-files -m | xargs -L 1 basename
我正在寻找相同的信息,发现以下给出了修改后的文件:
git status -uno
问题是我有太多暂存文件,我目前不想提交或 gitignore,并且无法向上滚动。
虽然这可能无法直接回答仅列出已修改文件的问题,但它可能有助于限制列出的文件数量。
您可以将路径传递给
git status
以将输出限制到存储库中的特定文件夹。
例如:
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
打开
.gitconfig
[user]
name = ...
email = ...
[alias]
# 👇 add below code
mySt = "!f() {\
inputType=${1:-" "};\
git status -s | grep "\\ $inputType" |\
sed -e 's/ / /' ;\
}; f"
解释一下:https://stackoverflow.com/a/62772985/9935654
用法
:显示修改后:git mySt M
: 显示所有已修改的*.md。git mySt M *.md
:已删除:git mySt D
:与git mySt
相同git status -s
以下命令将显示包含 "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 show --stat --oneline HEAD
所有答案都很棒,但 Git 已经发展,现在提供了一个开箱即用的解决方案,用于仅获取已更改文件的名称(包括未跟踪的文件)
git status --short
如果您需要脚本友好的输出,请使用推荐的 --porcelain 标志
git status --short --porcelain
所有答案都很棒;只是 FEI,“git checkout ”(切换到或在同一分支中)似乎只显示修改过的文件。
如果你想列出修改过的文件,你可以这样做:
git log -n1 --oneline --name-status | grep '^M'
我用
git cola
。它是一个简单而优雅的 UI 客户端,将向您显示修改后的文件,并为您提供所做更改的类似差异的镜头。
git cola
为您提供了一个 GUI,您可以在其中可视化您修改的文件、暂存的文件,甚至是您不跟踪的文件。我相信你的问题是只使用 git status ,但我认为 git cola 可以在这个和其他事情上提供帮助。查看此网页以获取更多信息:git-cola.github.com/screenshots.html