美文网首页
git连接远程仓库

git连接远程仓库

作者: 会飞的蜗牛F | 来源:发表于2020-01-05 20:50 被阅读0次

    基础配置

    获取自己的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,可以看到远程仓库信息。如果报错,会报
    git remote add origin**************
    fatal: remote origin already exists.(报错远程起源已经存在。)
    

    上网查了下,有很多小白遇到过这个问题,以下是网上摘取的解决办法,
    解决办法如下:

    1、先输入 git remote rm origin
    2、再输入 git remote add origin**************
    

    这样就不会报错了!

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

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

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

    总结:如果想本地的内容推送到已有的github仓库,根据第三种情况可知,仍然要pull之后再push,所以还是先pull已有的仓库到本地,在把文件复制到本地的git仓库,在push到远程仓库

    具体的步骤可参考:https://www.runoob.com/git/git-remote-repo.html

    相关文章

      网友评论

          本文标题:git连接远程仓库

          本文链接:https://www.haomeiwen.com/subject/opmcactx.html