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 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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务