git diff --name-only
或 git diff --name-status
将列出所有已更改的文件,但是没有列出所有文件夹的命令包含文件的名称已更改。
例如,对于这个目录树:
test/
|
|__B/
|
|____b1.txt
|
|__C/
|
|____c1.txt
如果b1.txt
和c1.txt
改变了,我想得到B
和C
作为输出。
最佳答案
这里有一个方法:
git diff --name-only | xargs -L1 dirname | uniq
解释
git diff --name-only
: 列出所有改变的文件xargs -L1 dirname
:删除文件名以仅保留目录uniq
:去除重复项
您可以创建 an alias因此您不必每次都键入整个命令:
alias git-diff-folders="git diff --name-only | xargs -L1 dirname | uniq"
关于bash - 如何列出在 Git 中更改了文件的所有文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49338012/