美文网首页
git-远程仓库

git-远程仓库

作者: 脏脏包盛 | 来源:发表于2018-09-06 16:56 被阅读0次

    ssh ssh-keygen -t rsa -C "youremail@example.com" 生成SSH key
    git remote add origin git@server-name:path/repo-name.git 关联远程库,
    git remote remove origin 远程关联取消
    git push -u origin master 关联后使用该命令第一次推送master分支的所有内容
    git push origin master 此后使用该命令推送最终修改
    git clone git@github.com:michaelliao/gitskills.git 克隆远程库中内容

    建立ssh key

    填入你的真实mail

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

    如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

    第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:


    image.png

    然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

    为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
    当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
    在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
    如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

    添加远程库

    首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:

    现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:

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

    michaeliao为你的github账户名,learngit.git为你在github的项目名
    本地内容推送

    $ 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分支推送到远程,-u在第一次建立链接的时候使用。使用-u Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。


    image.png

    从现在起,只要本地作了提交,就可以通过命令:

    $ git push origin master
    

    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连接给出的一致。

    从远程库克隆

    首先,登陆GitHub,创建一个新的仓库,名字叫gitskills:


    image.png

    我们勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件:


    image.png
    现在,远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
    $ git clone git@github.com:michaelliao/gitskills.git
    Cloning into 'gitskills'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
    Receiving objects: 100% (3/3), done.
    

    注意把Git库的地址换成你自己的,然后进入gitskills目录看看,已经有README.md文件了:

    $ cd gitskills
    $ ls
    README.md
    

    相关文章

      网友评论

          本文标题:git-远程仓库

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