项目场景
笔者在 GitHub 上创建了一个仓库作为 git 的远程库,并创建了一个 PR,完成了一个提交与合并操作。笔者在本地使用 git init 命令也创建了一个同名库,增加了一些文件,现想将本地库的文件与远程库进行合并。
问题描述
- 首先,使用
git remote add 命令将远程库与本地库绑定
git remote add origin https://github.com/XavierJiezou/NetSM
origin :指定 origin 作为远程库的别名(远程库的链接那么长,我们不可能每次都输入这么长的链接吧,因此需要一个别名)。
- 然后,我尝试将本地库的文件更改提交到远程库(我创建的远程分支是
main )
git push origin main
- 但是报错,说让我先
pull ,那我就先 pull :
git pull origin main
- 但是
pull 的时候也报错:
fatal: refusing to merge unrelated histories
报错信息翻译过来就是:致命错误,拒绝合并无关的历史记录。
原因分析
为什么会提示要合并的历史记录是无关的呢?因为,我这里对本地库和远程库进行了不同的操作,它们两者具有不同的提交历史记录,即使你使用 git remote add 命令将远程库绑定到了本地库,但它们的历史提交记录仍不同,可以认为是毫无关系的。
解决方案
😀解决方案1(推荐)
既然本地库和远程库的历史提交记录不同导致无法合并,那我们就先使用 git clone 命令把远程库的文件克隆下来。然后本地库的文件拖到存放远程库的文件夹中,然后分别使用如下命令进行提交合并:
git add .
git commit -m "merge"
git push origin main
😐解决方案2
除上述方案外,有网友也提出了修改 git 配置的方法:
git pull origin main --allow-unrelated-histories
当然,不太推荐此方案,毕竟修改默认配置有一定的风险。
|