我们可以使用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
领取专属 10元无门槛券
私享最新 技术干货