gpt4 book ai didi

git - 我怎样才能将 git-diff 限制在一个没有子目录的目录中?

转载 作者:IT王子 更新时间:2023-10-29 00:56:21 25 4
gpt4 key购买 nike

我正在使用 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 选项来检测同一目录中的重命名和副本。

最佳答案

将其传递给 grep:

git diff --name-status HEAD..HEAD~1 . | grep ^[^/]*$

这将过滤掉任何包含子目录的内容,如果您需要从更深层次获取某些内容,请执行以下操作:

git diff --name-status HEAD..HEAD~1 <path> | grep ^<path>[^/]*$

如果你愿意,你可以很容易地为它起别名。

关于git - 我怎样才能将 git-diff 限制在一个没有子目录的目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com