您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页git checkout和git fetch拉取远程分支代码的区别

git checkout和git fetch拉取远程分支代码的区别

来源:化拓教育网
(1).需要本地分支和远程分支建立映射关系

执行如下命令:

git checkout -b 本地分支xxx origin/远程分支xxx

例:git checkout -b master-20230228 origin/master-20230228

使用这种方式会在本地仓库新建本地分支xxx,并自动切换到新建的本地分支xxx,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。

(2).不需要本地分支和远程分支建立映射关系

执行如下命令:

git fetch origin 远程分支xxx:本地分支xxx

使用这种方式会在本地仓库新建本地分支xxx,但是并不会自动切换到新建的本地分支xxx,需要手动checkout,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支不会和远程分支建立映射关系。

本地分支和远程分支是否建立映射关系有什么区别?

不知道大家有没有经历过,当我们切换到了一个新的分支想要提交代码的时候,总会遇到这样的错误:

当然如果我们push的时候执行的不是git push,而是后面再加上origin的话,就可以push成功了。比如这样:

什么情况下git push就可以,什么情况下需要加上origin呢?

这里涉及一个机制就是本地的分支是不会自动和远程同步的,比如远程有人创建了一个test分支,我们拉取到本地会叫做origin/test。我们也可以自己创建一个test分支,和它井水不犯河水。这也是为了方便,如果直接用名称映射的话,可能会有潜在的冲突。并且由于可能会存在多个远程repo,所以我们push的时候也会有多种选择。

最完整的push命令是应该写成这样的:

git push origin test:cz/test

我们注意到这里用了一个奇怪的写法test:cz/test,它的意思是说将本地的test分支推送到远程作为cz/test分支。如果我们想要本地的名称和远程一样,我们可以省略简写成:git push origin test。

如果我们设置过当前test分支的上游是远程的test,或者本地的test就是从origin拷贝过来的,那么我们可以直接git push,它会自动将本地的分支与远程关联上,会方便很多。

实际上我们大多数的push操作都是这么进行的。将本地分支和远程建立映射可以使用这个命令:

git branch --set-upstream-to master origin/master

它表示的是将本地的master和远程的master进行关联,设置过关联之后我们只需要git push和git pull就可以更新和推送这个分支了,会方便很多。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务