您现在的位置是:首页 >其他 >gitlab【git pull原理】网站首页其他
gitlab【git pull原理】
1.git fetch
//获取所有分支
$git fetch
//获取指定分支
g
i
t
f
e
t
c
h
b
r
a
n
c
h
N
a
m
e
,如
git fetch branchName,如
gitfetchbranchName,如 git fetch origin master
本地仓库是分为两个部分,一个是版本库,也就是本地仓库,另一个是工作区,就是修改代码的地方,我们要提交代码,实际上要先把工作区修改的代码commit到本地版本库,然后再push到远程仓库
而$git fetch就是将远程仓库的代码更新到版本库,而工作区的代码并不会变化,然后我们可以用本地仓库工作区中的代码compare with版本库中的代码,然后看有没有冲突,有就解决,没有就可以放心的把版本库中最新的代码更新到工作区中
2.git merge
g i t m e r g e o r i g i n / x x x 如 git merge origin/xxx 如 gitmergeorigin/xxx如git merge origin/develop
将目标分支和当前分支合并,这个操作会把版本库中目标分支最近版本代码更新到当前工作区中
3.pull
git pull origin master
pull=fetch+merge,如果明白了上面两条,就不难理解为什么很多文章说pull=fetch+merge,因为pull是同时更新工作区和暂存区,比较暴力
4.举例说明为什么在开发中使用fetch+merge代替直接的pull
比如我们组项目开发的分支是develop,我自己开发的分支是doSomething,那么我每天提交前都要先fetch一下develop,把最新的develop代码拉到本地版本库中
然后去选择develop然后compare with current,也就是拿版本库中的develop和当前分支doSomething的代码进行比较,看看有没有冲突,有就解决冲突,没有就直接选中develop然后merge into current把develop合并到当前分支,然后才能提交,这样组长/管理人员在将组员的各个分支合并为一个分支的时候才不会代码冲突