问题1
报错信息
1 | fatal: refusing to merge unrelated histories |
出错原因
1、在g本地使用git init
创建了仓库;
1 | $ mkdir Demo |
2、在github上创建了远程仓库;
3、本地仓库添加了文件;
4、提交代码;
1 | $ git add ./ |
5、为本地仓库添加git仓库作为远程仓库;
1 | git remote add origin https://github.com/username/Demo |
6、pull远程仓库到本地(可能创建仓库时创建了readme文件。需要同步,再push)
1 | git pull origin master |
报错:fatal: refusing to merge unrelated histories
这个报错信息翻译为:拒绝合并不相关的历史
。
主要原因是本地仓库和远程仓库都是独立创建的。是彼此独立的仓库。所以拉取时要将远程的文件和本地的文件合并,就会出现这个问题。
7、解决办法
- 使用
git clone
直接拉取远程代码。
1 | $ git clone https://github.com/username/Demo |
这时,在本地已经有了相应的仓库,且远程和本地仓库是建立了连接的。自然就不会出现这个问题。
pull
时加上--allow-unrelated-histories
;
1 | git pull orinin master --allow-unrelated-histories |
该选项可以合并两个独立仓库的历史。
问题 2
将本地仓库和远程仓库退回到指定版本:
1 | git reset --hard [指定的提交版本sha1值] |
执行完命令后你会发现你的本地已经回退到指定的版本了,如果你是想远程仓库也回退,可以将本次执行结果强制推送到远程仓库。
1 | git push -f -u origin master |