Git 学习(五)远程仓库

时间:2023-03-09 01:56:32
Git 学习(五)远程仓库

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库克隆至本地。如下(可加指定目录):

      Git 学习(五)远程仓库

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

若使用GitHub,可能会注意到可给出的地址不止一个,还可以用 ssh or subversion    Git 学习(五)远程仓库

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

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

添加远程库

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

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

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

    Git 学习(五)远程仓库

      Git 学习(五)远程仓库

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

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

        Git 学习(五)远程仓库

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

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

    Git 学习(五)远程仓库

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

推送至远程库

        git push <url>    推送至远程库

      Git 学习(五)远程仓库

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

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

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

     Git 学习(五)远程仓库

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

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

从远程库获取

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

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

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

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