git pull 是上下文环境敏感的,它会把所有的提交自动给你合并到当前分支当中,没有复查的过程。而git fetch只是把拉去的提交存储到本地仓库中,真正合并到主分支中需要使用merage。
1、应该用 Fetch 还是 Pull,应该 Pull 是绝大部分的情况。针对 Git 使用的是分支管理代码,可以这样理解,在你对你的分支进行 Pull 之前,Git 就会 fetch 一下,当然这个 Fetch 只 Fetch 你的分支,如果你还需要看看其他的分支的话,那么你最好执行下 Fetch 命令。
2、git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中,而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
3、git fetch:相当于是从远程获取最新版本到本地,不会自动merge。首先从远程的origin的master主分支下载最新的版本到origin/master分支上;然后比较本地的master分支和origin/master分支的差别;最后进行合并。