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
    

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

  • 相关阅读:
    Jmeter压测
    .NET .Core 选择日志框架
    边缘控制器在边缘计算中的作用
    为何选择NB-IOT,NB-IOT的特点是什么
    RS232协议是什么
    物联网在生活中的应用场景
    透传模块是什么 为何透传
    4G DTU相对于GPRS/3G DTU有什么优势
    MQTT协议和Modbus之间的区别是什么
    4G模块应该怎么选择
  • 原文地址:https://www.cnblogs.com/shanelau/p/7106228.html
Copyright © 2011-2022 走看看