如图所示,我想查看自上次提交以来修改的文件列表git status,但我只关心位于单个目录中的文件。有没有办法做到这一点?我试过git status <directory>了,但这似乎做了一些完全不同的事情(列出所有更改的文件,就像我git add <directory>先写的那样)。
git-status 的文档并没有说明太多,除了它接受与 git-commit 相同的选项(但 git-commit 的目的不是显示已更改文件的列表)。
从目录中:
git status .
您可以真正使用任何路径,请使用以下语法:
git status <directoryPath>
例如路径为“my/cool/path/here”的目录
git status my/cool/path/here
git status采用与 相同的选项的原因git commit是,目的git status是显示如果您使用与传递给相同的选项进行提交会发生什么git status。在这方面git status是真的git commit --preview。
为了得到你想要的,你可以这样做显示分阶段的变化:
git diff --stat --cached -- <directory_of_interest>
这显示了未分级的更改:
git diff --stat -- <directory_of_interest>
或者这个同时显示:
git diff --stat HEAD -- <directory_of_interest>
最简单的解决方案:
git status | grep -v '\.\.\/'当然,这会丢弃颜色。
请注意,如果您简化检查 git stats 而无需转到 git 目录;
### 创建文件
须藤纳米/usr/local/bin/gitstat
###把这个放进去
#!/usr/bin/env bash
目录=$1
如果 [[ $dir == "" ]]; 然后
echo "需要目录!"
出口
菲
echo "'$dir' 的 Git 统计信息。"
git --git-dir=$dir/.git --work-tree=$dir diff --stat
### 给执行权限
sudo chmod +x /usr/local/bin/gitstat
并调用那个简单的脚本:gitstat /path/to/foo-project. 你也可以在foo-project做的时候使用它gitstat .,所以假设比 短git status -s,git diff --stat或者git diff --stat HEAD如果你总是使用控制台而不是 gui。
学分: