如何查找修改指定文件夹且排除指定提交及祖先的Git提交?
解决方法
要排除多个提交的所有祖先,同时筛选修改指定文件夹的提交,你可以在Git命令中添加多个排除标记,具体有两种写法:
方式一:使用^前缀排除提交及其祖先
直接在--all后添加带^前缀的提交哈希/分支名/标签名,每个要排除的提交都加一个:
git log --all ^<rev1> ^<rev2> -- <folder>
方式二:使用--not参数(更易读)
如果需要排除的提交较多,用--not会更清晰,每个提交前加一个--not:
git log --all --not <rev1> --not <rev2> -- <folder>
命令说明
--all:遍历仓库中所有分支的提交,确保不会遗漏任何分支上的相关提交^<rev>或--not <rev>:排除指定提交<rev>及其所有祖先提交-- <folder>:仅显示修改了<folder>路径下文件的提交,避免无关提交干扰
如果你还需要进一步筛选“与你无关”的提交(比如排除你自己的分支),可以额外添加排除你分支的标记,比如:
git log --all ^<rev1> ^<rev2> ^<my-branch> -- <folder>
内容的提问来源于stack exchange,提问作者Charles
相关产品推荐
相关产品推荐

