问题描述
在 git 中,如果没有暂存新文件夹,git status
只会打印文件夹名称如下:
Untracked files:
(use "git add <file>..." to include in what will be committed)
new-folder/
但是一旦它被暂存,git status
将以这种方式打印新文件夹:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: new-folder/new-file-1
new file: new-folder/new-file-2
new file: new-folder/new-file-3
new file: new-folder/new-file-4
...
new file: new-folder/new-file-199
new file: new-folder/new-file-200
有没有办法获取暂存更改列表,但只有暂存新文件夹的文件夹名称?
我正在编写一个脚本,以便在提交之前通过 git status --porcelain
获取修改/添加/删除文件的列表。在上述情况下,列表会太长。
解决方法
git diff-tree @ `git write-tree`
是一个很好的起点,可以使用您想要的任何格式选项,例如 name-status 和 diff-filter。