我希望看到自上次提交以来修改的文件列表,如git status
所示,但我只关心位于单个目录中的文件。有没有办法做到这一点?我尝试git status <directory>
,但似乎这完全不同(列出所有更改的文件,就像我先写git add <directory>
一样)。
git-status的文档并没有多大帮助,除了它接受git-commit所做的相同选项(但git-commit的目的不是显示已更改文件的列表)。
答案 0 :(得分:177)
从目录中:
git status .
您可以使用任何路径,请使用以下语法:
git status <directoryPath>
例如对于路径为“my / cool / path / here”的目录
git status my/cool/path/here
答案 1 :(得分:30)
git status
采用与git commit
相同的选项的原因是git status
的目的是显示如果您使用与传递给{{{{}}时相同的选项提交会发生什么1}}。在这方面,git status
确实是git status
。
为了得到你想要的东西,你可以这样做,显示分阶段的变化:
git commit --preview
,这显示了未分级的更改:
git diff --stat --cached -- <directory_of_interest>
或显示两者的内容:
git diff --stat -- <directory_of_interest>
答案 2 :(得分:13)
最简单的解决方案:
git status | grep -v '\.\.\/'
当然这会丢弃颜色。
答案 3 :(得分:1)
作为一个注释,如果你简化检查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
中使用它,如果您总是使用控制台而不是gui,则假设短于git diff --stat
,git diff --stat HEAD
或{{1}}
现金: