Git中的fetch和pull
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
很有帮助 谢谢
参考博主的代码使用时,发现如下merge命令失效:
git fetch origin master
git log -p master..origin/master
git merge origin/master
但是,如下merge命令成功:
git fetch origin master:tmp
git diff tmp
git merge tmp
你没有origin这个仓库
请教一下
我用git fetch origin master:tmp
git diff tmp
git merge tmp
结果出现了 说我得本地库ahead of 1 commit compare with 远程库
我git pull一下就没问题了 原因除在哪里呢? 谢谢
[...] 转自:http://www.tech126.com/git-fetch-pull/ « git常用命令图解 [...]
[...] [原文: http://www.tech126.com/git-fetch-pull/] [...]
[…] 通过高飞鸟 – Highbird » Blog Archive » Git中的fetch和pull. […]
[…] 首先,我搜索了git pull和git fetch的区别,网上的帖子很多,我主要参考了http://www.tech126.com/git-fetch-pull/这个帖子,我摘抄下主要内容。 […]
简单易懂,good fit