您好,欢迎来到年旅网。
搜索
您的当前位置:首页gitfetchpull详解

gitfetchpull详解

来源:年旅网
gitfetchpull详解

1、简单概括

先⽤⼀张图来理⼀下git fetch和git pull的概念:

可以简单的概括为:

git fetch是将远程主机的最新内容拉到本地,⽤户在检查了以后决定是否合并到⼯作本机分⽀中。

⽽git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产⽣冲突,需要⼿动解决。下⾯我们来详细了解⼀下git fetch 和git pull 的⽤法。

2、分⽀的概念

在介绍两种⽅法之前,我们需要先了解⼀下分⽀的概念:

分⽀是⽤来标记特定代码的提交,每⼀个分⽀通过SHA1sum值来标识,所以对分⽀的操作是轻量级的,你改变的仅仅是SHA1sum值。如下图所⽰,当前有2个分⽀,A,C,E属于master分⽀,⽽A,B,D,F属于dev分⽀。A----C----E(master)\\

B---D---F(dev)123

它们的head指针分别指向E和F,对上述做如下操作:git checkout master //选择or切换到master分⽀g

git merge dev //将dev分⽀合并到当前分⽀(master)中12

合并完成后:

A---C---E---G(master)\\ /

B---D---F(dev)123

现在ABCDEFG属于master,G是⼀次合并后的结果,是将E和F的代码合并后的结果,可能会出现冲突。⽽ABDF依然属于dev分⽀。可以继续在dev的分⽀上进⾏开发:A---C---E---G---H(master)\\ /

B---D---F---I(dev)

1234

分⽀(branch)的基本操作:git branch //查看本地所有分⽀

g

git branch -r //查看远程所有分⽀

g

git branch -a //查看本地和远程的所有分⽀

g

git branch //新建分⽀

g

git branch -d //删除本地分⽀

g

git branch -d -r //删除远程分⽀,删除后还需推送到服务器g

git push origin: //删除后推送⾄服务器

g

git branch -m //重命名本地分⽀/***

*重命名远程分⽀:*

*1、删除远程待修改分⽀*

*2、push本地新分⽀到远程服务器**/

/

//git中⼀些选项解释:

-d

--delete:删除

-D

--delete --force的快捷键-f

--force:强制

-m

--move:移动或重命名-M

--move --force的快捷键-r

--remote:远程

-a

--all:所有

3、git fetch ⽤法git fetch 命令:

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地1

如果只想取回特定分⽀的更新,可以指定分⽀名:$ git fetch <远程主机名> <分⽀名> //注意之间有空格1

最常见的命令如取回origin 主机的master 分⽀:$ git fetch origin master1

取回更新后,会返回⼀个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:$ git log -p FETCH_HEAD1

如图:

可以看到返回的信息包括更新的⽂件名,更新的作者和时间,以及更新的代码(19⾏红⾊[删除]和绿⾊[新增]部分)。我们可以通过这些信息来判断是否产⽣冲突,以确定是否将更新merge到当前分⽀。 4、git pull ⽤法

前⾯提到,git pull 的过程可以理解为:

git fetch origin master //从远程主机的master分⽀拉取最新内容 g

git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分⽀中12

即将远程主机的某个分⽀的更新取回,并与本地指定的分⽀合并,完整格式可表⽰为:$ git pull <远程主机名> <远程分⽀名>:<本地分⽀名>1

如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略:$ git pull origin next

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

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

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

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