git连接远程仓库

基础配置 获取自己的SSH Key

git安装过程省略。
  • 第1步,查看系统本用户路径下有没有.ssh目录,比如我的目录是C:\Users\Shawn\.ssh,有的话跳到第3步;
  • 第2步,创建SSH Key。在任意位置打开Git Bush终端,运行下面的示例命令,注意要输入你的email地址。
    ssh-keygen -t rsa -C "youremail@example.com"


  • 第3步,查看.ssh目录,可以看到里面有id_rsaid_rsa.pub两个文件。id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,待会要用到


具体这两个东西代表什么含义,这里不讨论。
在GitHub中添加SSH Key
  • 第1步,登陆GitHub,右上角个人头像,选择setting进入设置页面;
  • 第2步,选择SSH and GPG keys选项,可看到你自己目前的ssh信息。我自己添加了两条,一条是公司电脑,一条是家里电脑。


  • 第3步,点击New SSH key,添加一个SSH Key;
  • 第4步,用编辑器打开本地的公钥id_rsa.pub文件,全部复制粘贴到Key栏,输入名称,保存,就可以成功添加一条SSH Key。
连接远程仓库 我平常遇到的有3种情况:
  • 已有GitHub远程仓库,拉取到本地做开发;
  • 本地的项目想丢到GitHub上;
  • GitHub有仓库,本地也有项目,想合并到一块。
情况1:已有GitHub远程仓库,拉取到本地做开发
这种情况很简单,直接拉取到本地就可以,具体操作是:
  • 获取到远程仓库的地址,如:git@github.com:yourGitHubId/testRepo.git
  • 在指定路径下打开Git Bush终端,运行命令git clone git@github.com:yourGitHubId/testRepo.git


这里可能会提示The authenticity of host 'github.com (13.229.188.59)' can't be established.类似的命令,运行yes就好了 ——— 参考博客
情况2:本地的项目想丢到GitHub上
这种情况挺常见的,就是我本地开发的一个东西,想分享到GitHub,或者想多端同步,在其他电脑上/其他人参与开发。这种情况比前一种要复杂,操作如下:
  • 第1步,创建本地仓库,并提交当前所有修改到本地仓库。




  • 第2步,创建远程仓库,空白仓库。创建完成后,仓库页面会有连接提示,复制仓库地址。


  • 第3步,连接远程仓库,把本地仓库与远程仓库连接起来,运行命令:git remote add online git@github.com:yourGitHubId/testRepo.git,这里add后面的online是随便取的,官方习惯用origin,我这里用online,然后运行gir remote -v查看当前连接的远程仓库信息。


  • 第4步,本地文件首次提交到远程仓库,运行命令git push -u online master,完成后就可以在远程仓库中看到这些文件了,之后的提交不需要加-u


如果不是创建了空白仓库,比如添加了Readme文件,可能会出现-refusing to merge unrelated histories这种报错,这种属于情况3的讨论范畴。
情况3:GitHub有仓库,本地也有项目,想合并到一块
  • 第1步,创建本地仓库,并提交当前所有修改到本地仓库;
  • 第2步,连接远程仓库。运行命令:git remote add origin git@github.com:yourGitHubId/testRepo.git,可以看到远程仓库信息。


  • 第3步,从拉取远程仓库文件,跟上一种情况不一样,前面是直接推送到远程空白仓库,现在是先从远程仓库拉取文件,正常拉取的命令是git pull origin master,git报警告fatal: refusing to merge unrelated histories,意思是“拒绝合并不相关的历史”。因此要强行合并,使用命令git pull origin master --allow-unrelated-histories,拉取搞定。


  • 第4步,冲突解决。拉取远程仓库文件,很有可能会出现冲突,按照普通冲突的办法解决,然后提交本地仓库。




  • 第5步,推送远程仓库,完成后可以在远程仓库中查看新修改。




“拒绝合并不相关的历史”的解决,参考这篇博客。
以上,就是我在工作学习过程中,有关GitHub远程仓库连接的一些探索,希望可以有帮助。
参考文章
  • 廖雪峰-Git教程
  • 记Git报错-refusing to merge unrelated histories
  • git---如何解决The authenticity of host 'github.com (192.30.255.112)' can't be established
【git连接远程仓库】转载于:https://juejin.im/post/5ce7b08ee51d45777540fd29

    推荐阅读