Git-05_远程仓库-github




GitHub
    该网站就是提供Git仓库托管服务的
    只要注册一个GitHub账号, 就可以免费获得Git远程仓库
SSH
    说明
        本地Git仓库 和 GitHub仓库 之间的传输是通过SSH加密的
    步骤
        1. 创建 SSH key
            $ pwd
                /e/git_repository
            $ ssh-keygen -t rsa -C "wuqinfei_cs@163.com"
                Generating public/private rsa key pair.
                Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
                Created directory '/c/Users/Administrator/.ssh'.
                Enter passphrase (empty for no passphrase):
                Enter same passphrase again:
                Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
                Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
                The key fingerprint is:
                65:98:a1:1e:ff:b4:15:c8:82:0b:73:db:79:0d:5d:82 wuqinfei_cs@163.com
                The key's randomart image is:
                +--[ RSA 2048]----+


                +-----------------+
            $ pwd
                /c/Users/Administrator/.ssh
            $ ls -a
                .  ..  id_rsa  id_rsa.pub
                id_rsa
                    是私钥,不能泄露出去
                id_rsa.pub
                    是公钥,可以放心地告诉任何人
        2. 在GitHub账号设置里添加公钥
            参考
                https://help.github.com/articles/generating-ssh-keys/
            示例
                $ cd /c/Users/Administrator/.ssh
                $ cat id_rsa.pub
                    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFgj3p1HlJT1hFxQnW5VVUux4XHFT/3egTxTcQsjKK
                    KJTy/6guKj2hNb4tlPjcskkIzZ+t7sL34vL+6i0r8msdHmNo3PMFSKT2mo1NHEn2Dsli6RTa+j8NToL4
                    ent4/4RbYuGIMeZGeLiwnecX0jvzv7xw6RHoRv/BpZJwenlNWd/fMlJE6E9znBOmMUjCBNQG9RVvCeLz
                    meFM+Zb/wt96lwt+92ovdzSMPaYerN1mcR3L2JfVdckI5PigT+BombzgsdImp6uf4n1zmJ6c+Zf98jyd
                    OPVP8warsvJ8nDqAdpvEI5AMh2VLE3/8yEWb/ow8JUHksKI7pFLFZJB6qKDD wuqinfei_cs@163.com
                填公钥
                    
            注意
                用谷歌浏览器
                GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,
                而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
                GitHub允许你添加多个Key。
添加远程仓库
    场景
        在本地有一个Git仓库, 在GitHub上创建一个Git仓库, 让两个仓库进行远程同步
        GitHub上的仓库既可以作为备份, 也可以让其他人通过该仓库来协作
    步骤
        在GitHub上新建空仓库
            
            
        本地Git库与GitHub上的库关联起来
            命令
                git remote add origin https://github.com/forwardNow/git_repo.git
            示例
                $ cd /e/git_repository/
                $ git remote add origin https://github.com/forwardNow/git_repo.git
        将本地Git库的master分支所有内容推送到GitHub
            命令
                $ git push -u origin master
            说明
                -u
                    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,
                    Git不但会把本地的master分支内容推送的远程新的master分支,
                    还会把本地的master分支和远程的master分支关联起来,
                    在以后的推送或者拉取时就可以简化命令。
                origin
                    远程库的名字,这是Git默认的叫法,也可以改成别的,
                    但是origin这个名字一看就知道是远程库。
            示例
                $ git push -u origin master
                    Username for 'https://github.com': forwardNow
                    Password for 'https://forwardNow@github.com':
                    Counting objects: 12, done.
                    Delta compression using up to 4 threads.
                    Compressing objects: 100% (6/6), done.
                    Writing objects: 100% (12/12), 948 bytes | 0 bytes/s, done.
                    Total 12 (delta 1), reused 0 (delta 0)
                    To https://github.com/forwardNow/git_repo.git
                     * [new branch]      master -> master
                    Branch master set up to track remote branch master from origin.
                    
从远程库克隆
    说明
        一般的开发流程是 先创建远程库, 然后 从远程库克隆.
    示例
        新建远程仓库
            
        克隆地址
            https://github.com/forwardNow/remote_repo.git
            git@github.com:forwardNow/remote_repo.git
            说明
                默认的git://使用ssh,但也可以使用https等其他协议。
                使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令
                但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。
            https 与 ssh
                HTTPS
                    Hyper Text Transfer Protocol over Secure Socket Layer
                    是以安全为目标的HTTP通道,简单讲是HTTP的安全版
                    HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
                    SSL 全称安全套接层协议( Secure Sockets Layer)
                    HTTPS和HTTP的区别
                        https协议需要到ca申请证书,一般免费证书很少,需要交费。
                        http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
                        http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
                        http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
                SSH
                    Secure Shell 
                    SSH 为建立在应用层和传输层基础上的安全协议
                    SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议
                    SSH提供两种级别的安全验证
                        第一种级别(基于口令的安全验证)
                            只要你知道自己帐号和口令,就可以登录到远程主机
                            所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。
                            可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
                        第二种级别(基于密匙的安全验证)
                            需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上
                            如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证
                            服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较
                            如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件
                            客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器
                            用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
                            第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。
        克隆
            $ cd /e
            $ pwd
                /e
            $ git clone git@github.com:forwardNow/remote_repo.git
                Cloning into 'remote_repo'...
                remote: Counting objects: 3, done.
                Receiv
                Receiving objects: 100% (3/3), done.
                Checking connectivity... done.
            $ cd remote_repo/
            $ ls
                README.md
总结
    $ ssh-keygen -t rsa -C "wuqinfei_cs@163.com"
    将id_rsa.pub的内容复制到GitHub的SSHkeys
    git remote add origin https://github.com/forwardNow/git_repo.git
    $ git push -u origin master
    git push origin master
        add
            commit
                push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值