在我的情况下,是否可以git status
只显示修改后的文件,因为暂存文件太多?
17 回答
您不能使用 来执行此操作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 status -sb -uno | grep -v "^\sD\s"
输出如下所示:
## master...origin/master
M GNUmakefile
M include/mp4v2/project.h
要列出修改后的文件,请使用:
git ls-files -m
如果您只想要基本名称(没有路径),那么您可以使用 xargs 将每个结果逐行传递到基本名称命令:
git ls-files -m | xargs -L 1 basename
问题是我目前不想提交或 gitignore 的暂存文件太多,我无法向上滚动。
虽然这可能无法直接回答仅列出已修改文件的问题,但它可能有助于限制列出的文件数量。
您可以传递路径以git status
将输出限制到存储库中的特定文件夹。
例如:
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
操作系统:windows
以下命令将显示所有包含"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 则必须添加分号)
操作系统:Linux
正如@Lance所说,您可以尝试
git status | grep modified:
我用git cola
. 它是一个简单而优雅的 UI 客户端,它将向您显示修改后的文件,并为您提供您所做更改的差异镜头。
git cola
为您提供了一个 GUI,您可以在其中可视化您修改了哪些文件、暂存了哪些文件,甚至是那些您不跟踪的文件。你的问题是我相信只使用 git status ,但我认为 git cola 可以在那个时候和其他事情上提供帮助。从更多信息中查看此网页:git-cola.github.com/screenshots.html
如果要列出修改后的文件,可以这样做:
git log -n1 --oneline --name-status | grep '^M'
要列出所有修改的文件,请使用:
git show --stat --oneline HEAD
所有很好的答案;只是 FEI,“git checkout”(切换到或在同一分支中)似乎只显示修改后的文件。