本地删除但远程修改的文件导致git checkout --ours .失效,求解决方案
解决Git Merge时Modify/Delete冲突的问题
问题原因
你遇到的冲突是本地HEAD分支删除了文件mimic_pipeline_tools/data_cleaning_scripts/dc.log,但远程origin/master分支修改了该文件。执行git checkout --ours .报错,是因为本地HEAD已经没有这个文件的版本了,--ours找不到对应的文件内容。
解决方案
要保留本地的删除状态(即让文件保持被删除的状态),执行以下步骤:
手动确认并处理冲突文件:
git rm mimic_pipeline_tools/data_cleaning_scripts/dc.log这个命令会告诉Git你确认要删除该文件,同时解决该文件的冲突。
执行完后用
git status检查冲突是否已解决,此时该文件的冲突标记会消失。最后完成merge操作:
git commitGit会自动生成merge提交信息,确认后即可完成合并。
批量处理同类冲突
如果有多个这类“本地删除、远程修改”的冲突文件,可批量处理:
git rm $(git ls-files --deleted)
执行前请确认所有列出的文件都是你要保留删除状态的文件。
内容的提问来源于stack exchange,提问作者T. Walter
相关产品推荐
相关产品推荐

