[英]is it possible to `git status` only modified files?
是否有可能让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 status -uno
要列出修改后的文件,请使用:
git ls-files -m
如果您只想要基本名称(无路径),那么您可以使用 xargs 逐行将每个结果发送到基本名称命令 pipe:
git ls-files -m | xargs -L 1 basename
问题是我暂时不想提交或 gitignore 的暂存文件太多,我无法向上滚动。
虽然这可能无法直接回答仅列出修改过的文件的问题,但它可能有助于限制列出的文件数量。
您可以将路径传递到git status
,以将 output 限制到存储库中的特定文件夹。
例如:
git status app
git status spec
git status src/components
打开.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
:显示已修改:
git mySt M *.md
: 显示所有*.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"
(注意:如果 type > 1 则必须添加分号)
正如@Lance 所说,您可以尝试
git status | grep modified:
我使用这个命令:
$ git status -sb -uno | grep -v "^\sD\s"
output 看起来像这样:
## master...origin/master
M GNUmakefile
M include/mp4v2/project.h
我用git cola
。 它是一个简单而优雅的 UI 客户端,它将向您显示修改后的文件,并为您提供您所做更改的差异截图。
git cola
为您提供了一个 GUI,您可以在其中可视化修改了哪些文件、暂存了哪些文件,甚至还可以查看未跟踪的文件。 我相信你的问题是使用 git 状态,但我认为 git 可乐在那个时候和其他事情上也有帮助。 从更多信息中查看此 web 页面: git-cola.github.com/screenshots.html
如果你想列出修改过的文件,你可以这样做:
git log -n1 --oneline --name-status | grep '^M'
要列出所有修改过的文件,请使用:
git show --stat --oneline HEAD
所有的好答案; 只是 FEI,“git checkout”(切换到或在同一分支中)似乎只显示修改过的文件。
所有的答案都很好,但 Git 已经发展,现在提供了一个开箱即用的解决方案,用于获取已更改文件的名称(包括未跟踪的文件)
git status --short
如果您需要一个脚本友好的 output,请使用推荐的 --porcelain 标志
git status --short --porcelain
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.