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