我git diff --name-status
用来跟踪在两次提交之间修改/添加/删除/重命名/复制了哪些文件,效果很好。
现在假设我将文件移动file1
到newdir/file1
,提交,然后运行 git diff,我得到这个:
$ git diff --name-status -C HEAD~1 HEAD
R100 file1 newdir/file1
有没有办法让 git 将自己限制在给定目录内的更改列表中,而不是其子目录?我想分别知道根目录和目录的确切更改newdir
。对于newdir
,很简单:
$ git diff --name-status -C HEAD~1 HEAD -- newdir
A newdir/file1
…但是我怎样才能获得根目录中的“互补”差异信息?即,这个输出:
$ git diff ???
D file1
请注意,我想保留-C
在同一目录中检测重命名和副本的选项。