远程分支

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

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

举例,我的github上有一个仓库gitstudy。仅有一个master分支,和两次提交
1195932-20190326100425577-1853112626.png
我们将这个仓库克隆到本地

$ 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

1195932-20190326100846197-849644462.png

这里,有两个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

1195932-20190326101705267-627254437.png

可以看到,只有本地的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

1195932-20190326101800799-1752088874.png

你与服务器出现了偏差,你可以使用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

1195932-20190326102033955-2020571819.png

转载于:https://www.cnblogs.com/velscode/p/10598562.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值