158

如图所示,我想查看自上次提交以来修改的文件列表git status,但我只关心位于单个目录中的文件。有没有办法做到这一点?我试过git status <directory>了,但这似乎做了一些完全不同的事情(列出所有更改的文件,就像我git add <directory>先写的那样)。

git-status 的文档并没有说明太多,除了它接受与 git-commit 相同的选项(但 git-commit 的目的不是显示已更改文件的列表)。

4

4 回答 4

229

从目录中:

git status .

您可以真正使用任何路径,请使用以下语法:

git status <directoryPath>

例如路径为“my/cool/path/here”的目录

git status my/cool/path/here
于 2012-12-14T15:36:22.517 回答
33

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>
于 2009-04-03T19:34:02.657 回答
14

最简单的解决方案:

  1. 进入目录
  2. git status | grep -v '\.\.\/'

当然,这会丢弃颜色。

于 2009-04-03T19:30:00.153 回答
2

请注意,如果您简化检查 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 -sgit diff --stat或者git diff --stat HEAD如果你总是使用控制台而不是 gui。

学分:

于 2015-04-14T07:46:34.190 回答