今天新建一个本地仓库在关联远程仓库时遇到的问题,作下记录。

[TOC]

配置SSH KEY

本地仓库与远程仓库通过SSH协议,所以需要配置SSH KEY

使用命令:

1
ssh -keygen  -t rsa –C “youremail@example.com”

运行后会在本地用户目录生成一个 .ssh目录,里面有id_rsad_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
2
3
$ git pull origin master
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories

但我在操作时遇到了上面的错误 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

这样就可以成功把远程仓库与本地仓库关联了。