Git 学习(五)远程仓库

  之前的章节所说的是本地Git仓库的操作,版本管理的优越性显然不会仅仅在本地。远程仓库也就是服务器或是网络端的仓库操作也是必须的。

  本文具体说明 Git 的远程仓库操作,示例是在 GitHub 上进行的,若存在服务器或其他站点,操作也是类似的。GitHub 网址:https://github.com/

  远程库 Clone

    通常团队的git库都是已建立的,你需要将远程git库的文件 clone 至你本地,git可快速完成这一操作。

    首先,你得知道远程 git库的服务器地址,如,我的 github 库示例:https://github.com/feesland/test.git ; 若是服务器,域名可能为类似 192.8.8.8 的 ip 等。

      git clone <repository>     克隆 git 库

    可带多个参数,详情请 help,通常用作将远程git库克隆至本地。如下(可加指定目录):

      

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。

若使用GitHub,可能会注意到可给出的地址不止一个,还可以用 ssh or subversion   

至于选取哪个,请参阅:https://help.github.com/articles/which-remote-url-should-i-use/

推荐使用 https,只是每次推送都必须输入口令;某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

添加远程库

    克隆本地库是建立在已有远程库的基础上的,现在我们来讨论以下的情况:

    若是先有本地库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,则须添加本地库至远程库。

    首先,本地Git库状态clean;其次,远程空的Git库需准备好,依然使用GitHub作为示例。

    

      

        git remote add <name><url>    添加远程库

      可带多个参数,详情请 help (可加对应分支等,可学完之后分支后再来尝试)

        

      添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

      gitHub 也有相关的提示操作,如下:

    

      这边看到第二句 git push ...  即是后续的 推送至远程仓库命令

推送至远程库

        git push <url>    推送至远程库

      

      把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

      由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

      这边可以看到推送会要求输入github的用户名及对应密码(由于是https,其他的可用加公钥至远程库的方式而无需输入);推送成功后,可在GitHub页面中看到远程库的内容已经和本地一样:

     

      此后,每次本地提交后,只要有必要,就可以使用命令  git push origin master  推送最新修改;

      分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

从远程库获取

      若远程库做了更改,本地仓库需要获取最新,则要使用 git fetch 或 git pull 命令。

        git fetch origin <branch>     从远程获取最新版本到本地,不会自动merge

        git pull origin <branch>       从远程获取最新版本并merge到本地

      有关分支、merge及冲突处理详情请关注后续的 Git 学习教程

最新文章

  1. Eclipse 使用技巧
  2. Laravel大型项目系列教程(三)之发表文章
  3. Codeforces 719B Anatoly and Cockroaches(元素的交叉排列问题)
  4. 【leetcode】Spiral Matrix II
  5. 理解OAuth 2.0(转载)
  6. C++学习11 类和new、delete操作符 类与const关键字
  7. jQuery打印插件PrintArea实现
  8. c#与vb.net在App_Code里面编译要通过,需要以下web.config的配置
  9. 395. Longest Substring with At Least K Repeating Characters
  10. BZOJ 2878 迷失游乐园
  11. as3 页游中,新手指导中,屏蔽所有交互对象,但除了指定交互对象可用的方法【转http://blog.csdn.net/linjf520/article/details/9450945】
  12. SQL整理2
  13. 【实战】静默安装-oracle 11.2.0.3 on centos 5.10
  14. MVC客户端验证
  15. Golang 网络爬虫框架gocolly/colly 三
  16. ●BZOJ 1096 [ZJOI2007]仓库建设
  17. python之定义参数模块argparse(一)基本使用
  18. Java之冒泡排序(升序)
  19. 将数组Arrays转成集合List
  20. eclipse设置是否自动跳转切换到debug视图模式

热门文章

  1. CentOS 7.2 下 PXE+kickstart 自动安装系统
  2. Git 简史
  3. C++ 几种经典的垃圾回收算法
  4. Spring @RequestMapping 注解使用技巧
  5. Win10 重装后,必须修改的设置
  6. Swift2.0语言教程之类的嵌套与可选链接
  7. 2809: [Apio2012]dispatching 可并堆 左偏树
  8. [SPOJ-LCS]Longest Common Substring
  9. gradle/maven/eclipse工程相互转化
  10. Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) B. Problems for Round 水题