我希望能够获取两个指定标签之间的更改内容,命令如下:
git log `Tag1...Tag2 --cherry-pick --no-merges --right-only
但是它非常缓慢。
我逐个测试参数。只有当使用--cherry-pick
时,git log才非常缓慢。
为什么?有人能帮忙解决吗?
我希望能够获取两个指定标签之间的更改内容,命令如下:
git log `Tag1...Tag2 --cherry-pick --no-merges --right-only
但是它非常缓慢。
我逐个测试参数。只有当使用--cherry-pick
时,git log才非常缓慢。
为什么?有人能帮忙解决吗?
我一直在使用
git log tag1 --not tag2
这会给我所有在tag1上的提交但不在tag2上的提交,对于分支与标签也同样适用。
挑选特定提交可能不太快,因为它可能会将重命名检测作为合并的一部分,这可能很耗费时间,特别是当您挑选的提交距离 HEAD 很远时。
可能是您的 git 配置中有 gc.auto = 0
(git config --get gc.auto
),请确认是否已启用,或者只需运行:
git gc
merge.renamelimit
配置变量设置为较小的值(例如1,因为0表示没有限制)。如果这样做没有帮助,请尝试对您的git进行分析(例如使用strace
或perf record git cherry-pick ...
)并找到瓶颈所在。