本章 就开始和大家一起学习第三块内容:远程仓储的使用操作。要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某 个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分 支,定义是否跟踪这些分支,等等。本章我们将详细讨论远程库的管理和使用。
1.查看远程仓储
项目开发到一定的阶段,就需要将内容提交到某个远程仓储了,有时候你不确定指定仓储的详细信息,这时候 你就需要 使用 git remote 命令。查看当前配置中 有多少了远程仓储,至少有一个 origin,因为这个是 创建仓储或者克隆远程仓储式,git默认配置的仓储名称。担然你是可以改变它的默认配置滴。这个命令没带指定参数情况下,只会列举出远程仓储的简单信息如名称。 但 git remote -v 命令则会罗列出每个远程仓储的详细配置信息 如:
$ git remote -v
origin git://github.com/wwkai555/TestGit.git 或者 https://github.com/wwkai555/TestGit.git
这样一来,我就可以非常轻松地从这些用户的仓库中,拉取他们的提交到本地。请注意,对于目标远程仓储列出的地址是什么方式如: SSH URL 链接或 https 链接,我们本地也需要使用对应的协议推送数据上去。
以上查看远程仓储都是些基本的信息,如果需要进一步的查看远程仓储的详细配置信息,就必须使用 git remote show [仓储名] 命令,它会列举出详细的配置信息,如:
1 2 3 4 5 6 7 |
$ git remote show origin * remote origin URL: https://github.com/wwkai555/TestGit.git Remote branch merged with 'git pull' while on branch master master Tracked remote branches maste |
除了对应的克隆地址外,它还给出了许多额外的信息。它友善地告诉你如果是在 master 分支,就可以用 git pull 命令抓取数据合并到本地。另外还列出了所有处于跟踪状态中的远端分支。
2.添加远程仓储
开发中,有时候我们需要自己创建特殊仓储添加到远程仓储队列,这时我们就需要使用 git remote add [仓储名] [url],如:
$ git remote add rte https://github.com/wwkai555/TestGit.git $ git remote -v origin https://github.com/wwkai555/TestGit.git rte https://github.com/wwkai555/TestGit.git |
我们可以发现添加之后,再查看时 就发现有两个远程仓储了。
3.从远程仓储中获取数据
协同开发的过程中,我们有时需要同步他人的提交更新。例如:当我们需要提交内容的时候,当相同文件被更其他人更新过,则需要先更新其远程数据到本地,合并后才容许推送到远程仓储,否者推送的时候 就会报错。那么在获取远程仓储数据的方式有两种,第一种:使用 git fetch [仓储名] 命令,获取指定仓储中本地仓储中还没有的内容,运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用第二种方式: git pull 命令 ,它会自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。
4.推送信息到远程仓储
当一切信息都检查无误确定之后,你就可以将其推送到远程仓储了,使用: git push [仓储名] [分支名]命令,但需要推送到远程仓储指定的分支中时就要在该命令后面 加上 分支名了。但是注意一点,只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那 你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。
5.远程仓储的删除和重命名
协同开发的工作中,有时候会遇到远程服务器的迁移或者某个协同的开发者不再协同开发,那么这时候就需要重新配置远程仓储或者删除不再需要的仓储。这是就可以使用 git remote rm [仓储名],它会告诉服务器需要删除该仓储了。当我们需要重命名仓储时,就可以使用 git remote rename [旧的仓储名] [新的仓储名]命令就 OK 啦 。
6.标签
同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做。本节先做个简单的介绍,后续将详细的介绍它,一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。
学到这里呢 ,差不多将Git的常用的基本命名都学完啦,你完全可以去开始自己的Git项目,获取参与他人的项目,体验协同开发的乐趣!下一节,我们将学习 Git的 必杀技能-分支模型!敬请期待吧!嘎嘎!还是那句话,有哪里讲的不对的或者遗漏的还望大家及时提出来啊,共同学习,一起进步!