码迷,mamicode.com
首页 > 其他好文 > 详细

远程分支

时间:2019-03-26 10:31:31      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:txt   git push   出现   提交   分支   一个   mit   ons   需要   

远程分支是指向远程仓库分支的指针,这些指针存在于本地且无法移动。当你与服务器进行任何网络通信时,他们会自动更新。远程分支有点像书签,指示这上一次链接服务器时远程仓库中每个分支的位置。

远程分支的表示形式是(remote)/(branch).。例如,如果你要查看上次与服务器通信时远程origin仓库中master分支的内容,就需要查看origin/master分支。

举例,我的github上有一个仓库gitstudy。仅有一个master分支,和两次提交
技术图片
我们将这个仓库克隆到本地

$ git clone https://github.com/velscode/gitstudy

我们查看一下现在的分支情况

D:\git\gitstudy (master -> origin)
$ git log --oneline --decorate --graph --all
* df6797b (HEAD -> master, origin/master, origin/HEAD) 远程提交2
* bc91f76 远程提交1

技术图片

这里,有两个master,一个是远程服务器上的origin/master一个是自己本地的master
我们改动文件并进行一次commit

$ git commit -a -m "本地提交1"
[master d437fa1] 本地提交1
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 c.txt

查看分支

$ git log --oneline --decorate --graph --all
* d437fa1 (HEAD -> master) 本地提交1
* df6797b (origin/master, origin/HEAD) 远程提交2
* bc91f76 远程提交1

技术图片

可以看到,只有本地的master指针移动了,而由于没有push,所以服务器端的master指针仍然保持在原位置


接下来考虑这样一种情况,如果Tom和你同时克隆了这个仓库,并且改动文件,又在你之前提交且push到了服务器

$ git commit -a -m "Tom的提交"
[master 19afb7c] Tom的提交
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 d.txt

$ git push

这时,服务器的分支变成了

$ git log --oneline --decorate --graph --all
* 19afb7c (HEAD -> master, origin/master, origin/HEAD) Tom的提交
* df6797b 远程提交2
* bc91f76 远程提交1

技术图片

你与服务器出现了偏差,你可以使用git fetch origin命令,查询origin对应的服务器得知,并从服务器取得所有本地尚未包含的数据,然后更新本地数据库,最后将origin/master指针移动到最新的位置上去

$ git fetch origin
$ git log --oneline --decorate --graph --all
* 19afb7c (origin/master, origin/HEAD) Tom的提交
| * d437fa1 (HEAD -> master) 本地提交1
|/
* df6797b 远程提交2
* bc91f76 远程提交1

技术图片

远程分支

标签:txt   git push   出现   提交   分支   一个   mit   ons   需要   

原文地址:https://www.cnblogs.com/velscode/p/10598562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!