You have not concluded your merge (MERGE_HEAD exists)
- 原因:
- 之前已经执行过一次合并(merge)或 pull 操作,但没有完成(比如有冲突未解决、未提交)。
- Git 在 .git/MERGE_HEAD 中留有记录,认为“上一次合并还没结束”,所以拒绝开始新的合并。
- 即使现在看不到冲突文件,只要 MERGE_HEAD 文件存在,Git 就会报这个错。
- 解决办法:
- 放弃上一次的合并:
git merge --abort
合并两个未重叠的远端代码库
- 需求:
- 当从仓库B获取的代码,丢失了git文件后,作为一个新的仓库A存在,此时想要把B的最新代码合并到A里面,由于两者没有重叠的记录,所以无法直接合并进来。此时需要特殊参数强行合并。
- 解决办法:
- 语法:git pull <远端仓库名> <远端分支> --allow-unrelated-histories
- 举例:git pull upstream master --allow-unrelated-histories
手动解决合并冲突后,会多出一个源文件名.orig的文件
- 原因:
- 解决冲突时,自动生成的 .orig 文件(例如 file.txt.orig)是 Git 的 merge 工具默认行为。
- 这个文件是 Git 在合并冲突前对当前版本(your version)的备份。
- Git 在调用外部合并工具(如 Beyond Compare)时,默认会生成临时文件:
- *.base:共同祖先版本
- *.local 或 *.current:你的本地修改(HEAD)
- *.remote:要合并进来的版本(如 upstream/master)
- *.orig:合并前你工作区的原始文件(用于恢复)
- 解决:
- 如果不需要自动生成.orig文件,在命令行中做以下配置即可:
git config --global mergetool.keepBackup false
- 不建议关闭,如果已经关闭想要启用,命令行做以下配置:
git config --global mergetool.keepBackup true
posted @
2026-01-15 11:52
苍凉温暖
阅读(
0)
评论()
收藏
举报