我使用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
选项,以便在同一个目录中检测重命名和复制。
git diff <branchA>..<branchB> -- <path>
对我很有用。 - sholsinger