Git分支:远程分支(2)推送,跟踪,拉取,和删除

我们可以使用git fetch origin命令来完成同步

我们目前的操作都是在本地进行的。当你想要公开分享一个分支时,需要将其推送到远程仓库上。 当然你需要有这个远程仓库上的写权限

本地的分支并不会自动更新远程仓库 - 你必须主动执行推送命令把本地的内容推送到想要更新的分支上

使用命令:git push (remote) (branch)

>>git push origin mybranch

运行结果如下:

从服务器上抓取数据

下一次其他人从服务器上抓取数据时,他们会在本地生成一个远程分支

origin/mybranch,指向服务器的mybranch分支的引用

>>git fetch origin

抓取前:

抓取后:

要特别注意的一点是运行git fetch origin命令,本地不会生成一份可编辑的副本(拷贝)。

这种情况下, 只是在本地产生了一个不可以修改的origin/mybranch 指针。

也就是这时候本地并没有产生一个新分支

那么如何将origin/mybranch上的工作合并到当前分支上呢?

可以运行git merge origin/mybranch命令。

如何在远程分支的基础上,本地创建一个自己的mybranch分支用来工作

如果想要本地创建一个自己的mybranch分支用来工作,可以将其建立在远程跟踪分支之上:

>git checkout -b mybranch origin/mybranch

这会给你一个用于工作的本地分支,并且起点位于origin/mybranch

这是设置跟踪其他远程仓库上的跟踪分支的命令的一般形式。

>>git checkout -b [branch] [remotename]/[branch]

只要你愿意,你可以将本地分支与远程分支设置为不同名字:

现在,本地分支yourbranch会自动从origin/mybranch拉取。

查看设置的所有跟踪分支:

如果想要查看设置的所有跟踪分支,可以使用git branch命令加上-vv选项

master分支正在跟踪origin/master分支并且是最新的

ahead 3(超前3)意味着本地有3个提交还没有推送到服务器上

behind 1(落后1)意味着服务器上有一次提交还没有合并到本地分支

容易混淆的一点是:这些数字的值反映了你从每个最后一次从服务器上抓取的数据, 而不是运行git branch -vv命令时的状态。该命令不链接远程服务器

从远程服务器拉取数据 : git fetch 和 git pull

当git fetch命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。你需要运行git merge命令来自己合并。

git的确提供了一个命令git pull可以一步完成这两个任务。

在大多数情况下它的含义是一个git fetch紧接着一个git merge命令

删除远程分支

git push [remotename] --delete [branch]

例如:

>> git push origin --delete mybranch

这个命令从服务器上移除这个指针。 Git服务器通常会保留数据一段时间直到垃圾回收运行

今天介绍了远程分支的推送,跟踪,拉取,和删除。下次介绍rebase

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181030G0QQFJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券