今天新建一个本地仓库在关联远程仓库时遇到的问题,作下记录。
[TOC]
配置SSH KEY
本地仓库与远程仓库通过SSH协议,所以需要配置SSH KEY
使用命令:
1 | ssh -keygen -t rsa –C “youremail@example.com” |
运行后会在本地用户目录生成一个 .ssh
目录,里面有id_rsa
和d_rsa.pub
两个文件,d_rsa.pub
是公钥。在远程仓库中打开配置SSH的页面粘贴d_rsa.pub
文件里面的内容即可。如果已经生成过可以直接使用。
关联空仓库
在一个已经文件的文件夹里打开bash命令行窗口
使用命令初始化本地仓库
1 | $ git init |
提交本地仓库内容到暂缓区
1 | $ git add . |
提交到本地仓库
1 | $ git commit -m "first commit" |
新建一个远程空仓库,关联本地仓库
1 | $ git remote add origin git仓库地址.git |
把本地仓库分支master内容推送到远程仓库
1 | $ git push -u origin master |
第一次提交加 -u 表示该分支与远程仓库中的master分支关联,后面提交直接 git push 即可
关联非空仓库
如果你的远程仓库新建时已经添加了文件,并且本地仓库也不是空的,那么在本地仓库关联远程仓库后还是无法推送,需要先拉取远程仓库中的内容。
1 | $ git pull origin master |
但我在操作时遇到了上面的错误 fatal: refusing to merge unrelated histories
经过查找得知这个错误在2.9.0版本之后才出现,以前的版本可以正常使用,因此我们必需加一个可选项
1 | $ git pull origin master --allow-unrelated-histories |
通过这个选项允许我们把origin仓库的master分支同步到本地,命令执行后还会打开一个vim填写备注,vim使用自行Google。
与远程同步成功后我们再执行推送命令
1 | $ git push -u origin master |
这样就可以成功把远程仓库与本地仓库关联了。