We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
先回顾两个命令的定义
再来看一次git的工作流程图,如下所示:
git
可以看到,git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中
git fetch
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决
git pull
git pull = git fetch + git merge
在我们本地的git文件中对应也存储了git本地仓库分支的commit ID 和 跟踪的远程分支的commit ID,对应文件如下:
commit ID
使用 git fetch更新代码,本地的库中master的commitID不变
master
commitID
但是与git上面关联的那个orign/master的commit ID发生改变
orign/master
这时候我们本地相当于存储了两个代码的版本号,我们还要通过merge去合并这两个不同的代码版本
merge
也就是fetch的时候本地的master没有变化,但是与远程仓关联的那个版本号被更新了,接下来就是在本地merge合并这两个版本号的代码
fetch
相比之下,使用git pull就更加简单粗暴,会将本地的代码更新至远程仓库里面最新的代码版本,如下图:
一般远端仓库里有新的内容更新,当我们需要把新内容下载的时候,就使用到git pull或者git fetch命令
用法如下:
git fetch <远程主机名> <远程分支名>:<本地分支名>
例如从远程的origin仓库的master分支下载代码到本地并新建一个temp分支
origin
temp
git fetch origin master:temp
如果上述没有冒号,则表示将远程origin仓库的master分支拉取下来到本地当前分支
这里git fetch不会进行合并,执行后需要手动执行git merge合并,如下:
git merge
git merge temp
两者的用法十分相似,pull用法如下:
pull
git pull <远程主机名> <远程分支名>:<本地分支名>
例如将远程主机origin的master分支拉取过来,与本地的branchtest分支合并,命令如下:
branchtest
git pull origin master:branchtest
同样如果上述没有冒号,则表示将远程origin仓库的master分支拉取下来与本地当前分支合并
相同点:
不同点:
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、是什么
先回顾两个命令的定义
再来看一次
git
的工作流程图,如下所示:可以看到,
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中而
git pull
则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决在我们本地的
git
文件中对应也存储了git
本地仓库分支的commit ID
和 跟踪的远程分支的commit ID
,对应文件如下:使用
git fetch
更新代码,本地的库中master
的commitID
不变但是与
git
上面关联的那个orign/master
的commit ID
发生改变这时候我们本地相当于存储了两个代码的版本号,我们还要通过
merge
去合并这两个不同的代码版本也就是
fetch
的时候本地的master
没有变化,但是与远程仓关联的那个版本号被更新了,接下来就是在本地merge
合并这两个版本号的代码相比之下,使用
git pull
就更加简单粗暴,会将本地的代码更新至远程仓库里面最新的代码版本,如下图:二、用法
一般远端仓库里有新的内容更新,当我们需要把新内容下载的时候,就使用到
git pull
或者git fetch
命令fetch
用法如下:
例如从远程的
origin
仓库的master
分支下载代码到本地并新建一个temp
分支如果上述没有冒号,则表示将远程
origin
仓库的master
分支拉取下来到本地当前分支这里
git fetch
不会进行合并,执行后需要手动执行git merge
合并,如下:pull
两者的用法十分相似,
pull
用法如下:例如将远程主机
origin
的master
分支拉取过来,与本地的branchtest
分支合并,命令如下:同样如果上述没有冒号,则表示将远程
origin
仓库的master
分支拉取下来与本地当前分支合并三、区别
相同点:
不同点:
参考文献
The text was updated successfully, but these errors were encountered: