Figure 31. 本地与远程的工作可以分叉
如果要与给定的远程仓库同步数据,运行git fetch命令(在本例中为git fetch origin)。 这个命令查找 “origin” 是哪一个服务器(在本例中,它是git.ourcompany.com), 从中抓取本地没有的数据,并且更新本地数据库,移动origin/master指针到更新之后的位置。
Figure 32.git fetch更新你的远程跟踪分支
为了演示有多个远程仓库与远程分支的情况,我们假定你有另一个内部 Git 服务器,仅服务于你的某个敏捷开发团队。 这个服务器位于git.team1.ourcompany.com。 你可以运行git remote add命令添加一个新的远程仓库引用到当前的项目,这个命令我们会在 Git 基础 中详细说明。 将这个远程仓库命名为teamone,将其作为完整 URL 的缩写。
Figure 33. 添加另一个远程仓库
现在,可以运行git fetch teamone来抓取远程仓库teamone有而本地没有的数据。 因为那台服务器上现有的数据是origin服务器上的一个子集, 所以 Git 并不会抓取数据而是会设置远程跟踪分支teamone/master指向teamone的master分支。
Figure 34. 远程跟踪分支teamone/master
推送
当你想要公开分享一个分支时,需要将其推送到有写入权限的远程仓库上。 本地的分支并不会自动与远程仓库同步——你必须显式地推送想要分享的分支。 这样,你就可以把不愿意分享的内容放到私人分支上,而将需要和别人协作的内容推送到公开分支。
如果希望和别人一起在名为serverfix的分支上工作,你可以像推送第一个分支那样推送它。 运行git push:
$ git push origin serverfix Counting objects: 24, done. Delta compression using up to 8 threads. Compressing objects: 100% (15/15), done. Writing objects: 100% (24/24), 1.91 KiB | 0 bytes/s, done. Total 24 (