场景
我本地的代码和线上的代码,需要合并一下,因为线上的代码有修改的地方,我本地的代码也有修改的地方,直接覆盖会有问题,于是想到了用git(平时不用,直接ftp拉上去直接覆盖的),把修改过的文件,合并一下,不能合并的手动合并一下
我先在gitee上创建了一个空仓库,线上的代码先push后,然后到本地pull,发现无法合并
报错:refusing to merge unrelated histories
问题出现原因
两个仓库初始版本不一致导致的原因
使用git log查看历史提交版本,本地的第一个提交版本,和gitee上的第一个提交版本不一致,所以git认为这不是同一个仓库,拒绝合并
知道了原因,解决办法就很简单了,想办法让两个仓库的第一个提交版本一致,然后再push和pull
解决办法
1.码云重新创建git仓库,初始化一个.gitignore文件
2.线上代码首先创建git仓库,然后直接pull下来,
3.本地代码一样,创建git仓库,然后还是直接pull下来
4.这时候线上和线下都git log一下,可以看到,都有一个共同的初始版本(gitee创建仓库初始提交的)
5.此时回到线上代码,commit提交并push上传
6.回到本地代码,commit后,pull拉下来合并,显示成功
7.git diff 已经可以看到冲突的代码了,接下来手动合并就好