如何在Git拉取/检出时用theirs后追加mine解决特定文件冲突
解决Git特定文件冲突:保留远程版本并追加本地修改
操作步骤
当拉取代码遇到dbscript.txt冲突时,可按以下流程自动完成“远程版本在前、本地修改追加在后”的合并,无需手动处理:
导出远程(theirs)版本到临时文件
拉取后出现冲突时,执行命令获取远程分支的文件版本:git show MERGE_HEAD:dbscript.txt > temp_dbscript.txt追加本地(mine)修改内容
将你本地修改的内容追加到临时文件末尾:cat dbscript.txt >> temp_dbscript.txt替换原文件并标记冲突解决
用合并后的临时文件替换原文件:mv temp_dbscript.txt dbscript.txt然后告诉Git冲突已解决:
git add dbscript.txt最后完成合并提交:
git commit
一键脚本简化操作
如果不想每次重复敲命令,可写个shell脚本(命名为auto_merge_dbscript.sh):
#!/bin/bash # 导出远程版本 git show MERGE_HEAD:dbscript.txt > temp_dbscript.txt # 追加本地内容 cat dbscript.txt >> temp_dbscript.txt # 替换原文件 mv temp_dbscript.txt dbscript.txt # 标记冲突解决 git add dbscript.txt echo "dbscript.txt冲突已自动处理:远程版本在前,本地修改追加在后"
给脚本添加执行权限:
chmod +x auto_merge_dbscript.sh
之后遇到冲突直接运行./auto_merge_dbscript.sh即可。
注意事项
- 该逻辑适合SQL脚本这类“累加式”文件,若脚本存在重复执行的语句,事后需自行检查去重。
- 建议拉取前先提交本地修改,避免工作区文件状态混乱。
内容的提问来源于stack exchange,提问作者NetUser
相关产品推荐
相关产品推荐

