我希望看到自上次提交以来修改过的文件列表,如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目录;
### create file sudo nano /usr/local/bin/gitstat ### put this in #!/usr/bin/env bash dir=$1 if [[ $dir == "" ]]; then echo "Directory is required!" exit fi echo "Git stat for '$dir'." git --git-dir=$dir/.git --work-tree=$dir diff --stat ### give exec perm 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的。
积分: