zoukankan      html  css  js  c++  java
  • 【Git】五、远程仓库

    前面4节将的都是本地的git操作,这节开始讲合并到本地分支后,如何与远程仓库做交互
    ————————————————————————————————

    提要

    //生成本地ssh密钥
    $ ssh-keygen -t rsa -C "youremail@example.com"       
    //关联远程仓库                         
    $ git remote add origin git@github.com:ls199242/DemoRepo.git 
    //查看当前关联的远程仓库         
    $ git remote    
    //push当前本地仓库代码到远程仓库的master                                                                                        
    $ git push -u origin master    
    //pull远程仓库master到本地                                                                  
    $ git pull origin master     
    //首次拉去会因两个仓库非相关而失败,需要在后面指定允许                                                                       
    $ git pull origin master --allow-unrelated-histories     
    //克隆一个远程仓库到本地                             
    $ git clone git@github.com:ls199242/DemoRepo.git                              
    

    准备工作

    在与远程仓库协同工作之前,需要先创建SSHKey,如果没有创建过,则新建一个这样的文件

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

    意思是生成一个ssh key 后面引号里的是你的邮箱 生成好后,会告诉你生成文件的目录地址,一般是在C盘->User目录->当前用户目录下,有一组文件

    其中id_rsa.pub就是要配置在远端的公钥,需要配置在github或coding上,才可以进行代码的获取与推送

    一、创建远程仓库

    可以使用github(墙内比较慢),或使用coding(墙内,中文操作),创建自己的远程repo

    然后给你的远程仓库起个名字,可以选择初始化仓库,创建一个readme文件

    这时远程仓库就创建好了,但是他是空的

    二、关联远程仓库与本地仓库

    如果你已经有了一个本地的工作目录和本地仓库,你可以选择将远程空仓库和这个仓库关联起来

    $ git remote add origin git@github.com:ls199242/DemoRepo.git
    

    后面git...是我的远程仓库的地址

    当你的本地仓库没有关联远程仓库时,你输入指令git remote是不会有输出的
    指令里面的origin就是远程仓库的名称,和本地的master对应
    当你关联了远程仓库后再输入git remote ,会返回相应的远程仓库的名称

    $ git remote
    origin
    

    此时就可以提交本地工作区的修改了

    $ git push -u origin master
    

    -u表示将远程仓库的master分支和本地的master分支进行关联,如果不设置也可以,不过每次都要敲origin master
    如果第一次设置了-u,则后面的推送操作可以直接输入git push
    push之后,本地工作区的修改就已经同步到远程仓库上了
    如果在push时发生了错误,他会告诉你远程有最新的修改你没有获取,不能提交,则需要先pull才可以再执行提交

    $ git pull origin master
    From git.coding.net:shaneLau/Shane.Project
     * branch            master     -> FETCH_HEAD
    Already up-to-date.
    

    这里pull的时候也可能发生错误,在git版本2,9之后会出现,大意是两个不关联的仓库无法pull,解决办法是在指令后加上一句

    $ git pull origin master --allow-unrelated-histories
    

    输入这句指令后会进入vim(linux/unix的编辑器),你需要输入提交的comment,然后按esc退出,再输入:wq/:x 或:exit 就可以回到git bash窗口
    然后pull就可以成功了,之后再push

    三、克隆远程仓库

    如果远程存在一个仓库,这时本地想要同步远程仓库的内容,可以使用

    $ git clone git@github.com:ls199242/DemoRepo.git
    

    最后面是远程仓库地址,在指定的目录执行上面的命令,在本地就可以创建一个工作区+版本库,并且会同步获取远程仓库的内容

  • 相关阅读:
    apt 安装 Oracle Java JDK
    apt 安装 tomcat
    apt安装mysql
    yum 常用命令
    Ubuntu apt-get 更换源
    没有解决不了的bug,静下心一步步排查,早上一个小时就找出问题了
    关于看书学习的一点感悟
    利用暗时间看好了六大原则,下面开始练习23种设计模式
    养成看书思考的习惯
    凡事预则立,有时候还是得不断的去巩固一些基础知识的
  • 原文地址:https://www.cnblogs.com/shanelau/p/7106228.html
Copyright © 2011-2022 走看看