zoukankan      html  css  js  c++  java
  • Git学习之连接GitHub远程仓库

    在看此教程之前电脑上应该已安装好git,并且配置好基本信息,Git新手请从头开始

    第1步:创建SSH Key

    在用户主目录下(Mac系统是在用户主目录下,可通过命令ll -a查看,Windows下自行查找),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。
    如果没有,再打开终端软件(Windows下打开Git Bash),创建SSH Key:

    $ ssh-keygen -t rsa -C "youremail@example.com"
    

    注意:ssh-keygen是连在一起的不要加空格分开,然后-C是大写C,不要看错。
    你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    第2步:登陆GitHub,添加SSH KEY

    点击右上角个人头像->Settings

    根据图片操作在Key文本框里粘贴id_rsa.pub文件的内容

    点击Add SSH Key就可以看到已经添加的key了。

    为什么GitHub需要SSH Key呢?

    因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
    

    当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

    第3步:本地连接GitHub仓库并推送代码

    默认此时你的本地仓库已建好。

    1. 先在GitHub上新建一个仓库repository:learngit
    2. 在本地已经建好的learngit仓库下运行命令:

      $ git remote add origin git@github.com:michaelliao/learngit.git
      

      把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是廖雪峰大大的远程库,关联没有问题,但是你以后推送是推不上去的。
      添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

    3. 将本地库的内容推送到远程库上

      $ git push -u origin master
      Counting objects: 20, done.
      Delta compression using up to 4 threads.
      Compressing objects: 100% (15/15), done.
      Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
      Total 20 (delta 5), reused 0 (delta 0)
      remote: Resolving deltas: 100% (5/5), done.
      To github.com:michaelliao/learngit.git
      * [new branch] master -> master
      Branch 'master' set up to track remote branch 'master' from 'origin'.

      把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
      由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
      推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样从现在起,只要本地作了提交,就可以通过命令:

      $ git push origin master
      

      把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

    SSH警告

    当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

    The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
    RSA key fingerprint is xx.xx.xx.xx.xx.
    Are you sure you want to continue connecting (yes/no)?
    

    这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

    Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

    Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
    

    这个警告只会出现一次,后面的操作就不会有任何警告了。

    如果你实在担心有人冒充GitHub服务器,输入yes前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。

    小结

    要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    注意: 第一次上传可能会遇到push失败的情况,这是因为GitHub上有一个README.md文件没有下载下来

    解决方法:先git pull --rebase origin master,再git push -u origin master就可以了

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

    更多Git教程请参考:
    廖雪峰Git教程
    实验楼Git教程

  • 相关阅读:
    LINQ to XML 操作XML文档
    C#2008与.NET 3.5 高级程序设计读书笔记(3)C#核心编程结构I
    阐述集合类的接口(IEnumerable,IEnumerator,ICollection,IList,IDictionary)
    山塞一个PetShop(Task001)——基本的数据库连接
    山寨一个PetShop(Task002)——数据类库Model
    自定义控件(Task01)——可以设置属性的控件
    ASP.NET连接SQL、Access、Excel数据库(三)——工厂模式
    ASP.NET连接SQL、Access、Excel数据库(一)——什么是ADO.NET
    ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
    ASP.NET连接SQL、Access、Excel数据库(二)——连接实例
  • 原文地址:https://www.cnblogs.com/russellyoung/p/Git-xue-xi-zhi-lian-jieGitHub-yuan-cheng-cang-ku.html
Copyright © 2011-2022 走看看