是否可能有git status只显示修改的文件,因为在我的情况下,有太多的暂存文件?
git status
你不能用git status这样做,但是你可以用git ls-files -m来显示所有修改过的文件。
git ls-files -m
看起来git status -uno只会显示git正在跟踪的文件,而不会显示目录中的其他内容。这并不完全是您所要求的,但可能完成了相同的事情(获得git跟踪的可读长度的文件列表)。
git status -uno
我使用git cola。这是一个简单而优雅的UI客户端,它会向你显示修改后的文件,并为你提供一个不同的镜头,你所做的改变。
git cola
git cola为你提供了一个GUI,在这里你可以看到哪些文件你修改了,哪些文件你暂存,甚至那些你没有跟踪。你的问题是使用git状态,我相信,但我认为git可乐可以帮助时,以及其他事情。查看此网页更多信息:git-cola.github.com/screenshots.html
git status -s | awk '{if ($1 == "M") print $2}'
对于已修改的文件:
git status | grep modified:
git diff --name-only也可以。
git diff --name-only
如果你想列出修改文件,你可以这样做:
git log -n1 --oneline --name-status | grep '^M'
git diff --name-only --diff-filter=M
要列出修改过的文件,请使用:
如果你只想要basename(没有路径),那么你可以使用xargs将每个结果一行一行地输送到basename命令:
git ls-files -m | xargs -L 1 basename
要列出所有修改过的文件,使用:
git show --stat --oneline HEAD
我正在寻找相同的信息,发现以下给出修改文件:
都是很好的答案;只是FEI,“git checkout”(切换到或在同一分支)似乎只显示修改过的文件。
你可以使用
$ git status -uno
只列出修改过的文件。
问题是我有太多的阶段性文件,我不想提交或gitignore的时刻,我不能向上滚动。
虽然这可能不能直接回答只列出修改过的文件的问题,但它可能有助于限制列出的文件数量。
你可以将路径传递给git status来限制输出到repo中的特定文件夹。
例如:
git status app git status spec git status src/components
打开.gitconfig
.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: show modified: git mySt M *.md:显示所有*。Md,它被修改了。 git mySt D: deleted: git mySt:与git status -s相同
git mySt M: show modified:
git mySt M
git mySt M *.md:显示所有*。Md,它被修改了。
git mySt M *.md
git mySt D: deleted:
git mySt D
git mySt:与git status -s相同
git mySt
git status -s
下面的命令将显示包含“修改:“;, “更名为:“或“新文件:“;的所有行
git status | findstr "modified: renamed: new file:"
如果你想指定文件类型:(例如*.py *.ini)
*.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"
(注:if类型>1然后必须加分号)
正如@Lance说的,你可以试试
我使用这个命令:
$ git status -sb -uno | grep -v "^\sD\s"
输出如下所示:
## master...origin/master M GNUmakefile M include/mp4v2/project.h
一种替代方法是通过-s将结果放在一行中,这可以限制显示的内容。
-s
显示在窗口终端与电力线/时髦的git。
这个命令非常方便,我添加了它作为git stati的别名
git stati
[alias] stati = !git status -s
所有的答案都很棒,但Git已经发展,现在提供了一个开箱即用的解决方案,只获得更改文件的名称(包括untracked)
git status --short
如果您需要脚本友好的输出,请使用推荐的—porcelain标志
git status --short --porcelain