在git中显示未在特定目录中提交的文件(排除其他目录)

时间:2017-07-01 13:18:32

标签: git shell

我的目录结构如下:

RootDir
   `-----Code
   |       `-----Tests
   `-----Utils
   `-----Temp

我刚才提到了文件夹。我希望在Code/上看到任何未上传/未提交的文件,但不会Code/Tests/

我想要git diff --name-only "ThisPath But Exclude ThatPath之类的内容,但我在man git diff中找不到相关的排除选项。文件内容对我来说并不重要,我只想跟踪特定分支上的任何更改。

一种可能的解决方案可能是GITIGNORE运行时所需的路径(不在我的.gitignore文件中)。但是我也找不到这样的能力。

P.S。我的主要目标是编写一个shell函数,向我显示与最新提交相关的特定目录分支是否有变化。

P.S。使用shell可以将git -diff --name-only传递给某些工具,例如grep / ag / rg / etc,但我想先尝试基于git的解决方案

1 个答案:

答案 0 :(得分:0)

如果您使用bash,则可以启用extglob并使用排除模式:

shopt -s extglob  #Enables extglob
git diff --name-only -- Code/!(Tests)