Git如何删除分支同时自动移除其对应文件 无需手动逐个删除
解决方案
Git 本身没有内置你提到的git branch -d <分支名> --remove-files参数,但可以通过命令组合实现自动删除分支独有文件+删除分支的效果,无需手动逐个找文件删除。
操作步骤
- 第一步:切换到你需要保留的主分支(此处为master),不能在待删除的test分支上操作:
git checkout master - 第二步(可选校验):先预览test分支独有的、master上不存在的文件列表,确认要删除的文件是否符合预期:
git diff master test --name-only --diff-filter=A
该命令中--diff-filter=A表示仅筛选test分支新增、master不存在的文件,正好对应你需要移除的test分支独有文件。 - 第三步:执行合并命令,自动删除对应文件后删除test分支:
git diff master test --name-only --diff-filter=A | xargs rm -f && git branch -D test
注意事项
- 上述命令只会删除两个分支对比后test分支独有的新增文件,不会误删两个分支都存在的公共文件。
- 如果你不确定操作后果,可以先执行第二步的预览命令,确认文件列表无误后再执行第三步的删除操作。
内容的提问来源于stack exchange,提问作者Ernesto España
相关产品推荐
相关产品推荐

