美文网首页
Git--远程仓库

Git--远程仓库

作者: HCherisher | 来源:发表于2017-06-25 01:24 被阅读0次
    $ git remote add origin git@server-name:path/repo-name.git
    $ git push -u origin master
    $ git push origin master
    $ git clone git@server-name:path/repo-name.git
    

    Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。GitHub就是提供Git仓库托管服务的,我们只需要注册一个GitHub账号,就可以免费获得Git远程仓库。

    之后打开我们自己的github主页,点击界面上的绿色按钮New repository


    NewRepository.PNG
    打开创建仓库的界面,如下图所示 Create new repository 填入仓库名字(不能和已有仓库名字相同)、描述、权限(私有的貌似要收费)、选择初始化的时候是否创建README
    文件(Markdown格式)、是否添加gitignore

    文件、是否添加版权(一般是选 GNU General Public License 或者 Apache License,关于这两个协议,大家可以去网上搜一下),然后点击下面的 Create repository
    就完成了远程仓库创建

    clone

    点开我们刚才新建的仓库,点clone会发现有两个连接,一个是https一个是SSH传输的,利用http进行clone到本地或者与本地进行关联后,我们之后的每次操作都需要输入我们github的用户名和密码,这样太麻烦了,所以我们采取SSH方式,配置一次密钥就搞定:

    1. 首先本地创建密钥
      首先看本地根目录下的.ssh文件下是否有id_rsa与id_rsa.pub文件
      SSH密钥
      如果没有请执行一下命令生成密钥
      $ ssh-keygen -t rsa -C "youremail@example.com"
      然后可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
    2. 登陆GitHub,设置密钥


      SSHKey.png

      点击右上角头像Settings,然后点左侧SSH and GPGKeys,点Add Key,在Key文本框里粘贴id_rsa.pub文件的内容。

    为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
    当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

    然后我们就可以将本地仓库与刚建立的远程仓库所连接了。我们主要讲两个操作,本地仓库连接远程库和从远程clone库下来

    本地仓库连接远程库

    先进入本地仓库的目录,然后执行下面的命令

    $ git remote add origin git@github.com:HChersh/TestGit.git
    

    注意:origin为远程仓库的默认名字,也可以改,运行中可以抱这个名字已经存在,请自行简单百度一下怎么解决,后面跟的一定得是自己的远程仓库的地址,直接运行以上代码会让你的本地仓库和我远程仓库关联,但是你无法push上去,因为我远程仓库没有添加你的ssh密钥。
    然后运行$ git push -u origin master
    把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样
    下面就是gitclone的命令
    git clone git@server-name:path/repo-name.git

    相关文章

      网友评论

          本文标题:Git--远程仓库

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