解决 Git 报错:fatal: refusing to merge unrelated histories
最近我在同步一个深度学习课程代码库时因为误删了本地的.git文件夹遭遇了一个经典的 Git 报错。本文将复盘这次错误的解决过程。1. 事故现场误删 .git 引发的惨案事情的起因是我不小心删除了项目根目录下的.git文件夹。为了挽救我直接在当前目录执行了git init重新初始化了一个仓库并尝试拉取远程代码。然而当我执行git pull upstream master时Git 抛出了一个致命错误fatal: refusing to merge unrelated histories这是什么意思Git 认为我本地的代码历史和远程仓库的历史完全不是一回事。确实当我执行git init时我创建了一个全新的、没有历史的仓库而远程仓库已经有了很多提交记录。在 Git 眼里这是两个平行宇宙的项目。2. 解决方案与反思虽然可以通过添加--allow-unrelated-histories参数强制合并来解决这个问题但这往往会导致大量的冲突且逻辑上并不严谨。3.如何正确同步 Fork 的代码可以参考我的另一篇文章Git同步上游代码最彻底的修复方案是“重新克隆”备份先把本地修改过的代码文件备份出来。重克隆重新执行git clone获取一份干净的、带有完整历史记录的项目。恢复将备份的代码覆盖回去。这一步操作让我意识到保持本地 Git 历史记录的完整性是多么重要。4.总结通过这次“误删 .git”的小插曲我深刻理解了 Git 的提交历史History机制以及远程分支管理的重要性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2531085.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!