Git LFS迁移后拉取报'refusing to merge unrelated histories'的处理疑问
问题解答
你的判断完全正确,应该告知协作方使用git pull origin master --allow-unrelated-histories命令来解决问题,原因如下:
问题根源
你通过git lfs migrate import命令改写了仓库的完整历史,之后又用git push --force origin master强制覆盖了远程仓库的历史。此时协作方本地的仓库历史和远程的新历史已经完全没有关联,Git默认禁止合并这种无关联的历史,因此会抛出fatal: refusing to merge unrelated histories错误。
正确操作步骤
让协作方按以下步骤执行:
- 先确保本地没有未提交的修改,可通过
git stash暂存或git commit提交 - 执行拉取命令:
git pull origin master --allow-unrelated-histories
- 如果拉取过程中出现冲突,手动解决冲突后提交
- 完成后即可正常使用仓库
为什么不能用git push --force origin master
这个命令会将协作方本地的旧历史强制推送到远程,直接覆盖你刚完成LFS迁移的新历史,等于完全废弃你做的迁移操作,绝对不能让协作方执行这个命令。
内容的提问来源于stack exchange,提问作者passion053
相关产品推荐
相关产品推荐

