Git回滚含新增LFS二进制文件的提交时冲突,求脚本化方案
解决Git Revert含LFS文件提交时的冲突问题
问题原因
你执行的git revert命令本质是生成一个与目标提交反向的新提交——原提交新增了LFS文件,所以revert需要删除该文件。但当前分支的HEAD版本里这个文件存在修改记录,Git触发了modify/delete冲突。你指定的--strategy-option=theirs未生效,是因为在revert场景下,这个参数对这类冲突的自动处理逻辑有限,不会直接帮你删除文件。
脚本化解决方案
既然不能手动操作,用以下步骤自动化处理:
- 执行revert但不自动提交:
git revert cd68ab2f306c8db28d6887ece8e1e754e6b3b0d1 --strategy=ort --strategy-option=theirs --no-commit
- 自动清理冲突的LFS文件:
通过Git命令找出所有冲突文件并删除:
git diff --name-only --diff-filter=U | xargs git rm
- 完成revert提交:
git commit --no-edit
替代简洁方案
如果你的Git版本支持,也可以用更简洁的参数写法,配合自动清理:
git revert cd68ab2f306c8db28d6887ece8e1e754e6b3b0d1 -X theirs --no-commit git diff --name-only --diff-filter=U | xargs git rm git commit --no-edit
全程无需手动干预,完全适配脚本调用场景。
内容的提问来源于stack exchange,提问作者Sc4v
相关产品推荐
相关产品推荐

