git pull和git merge 都是将其他分支的代码合并到当前分支,那到底在不同场景下具体啥区别呢??
git fetch 将git/head/对应的branch的hash更新
中间步骤:创建tmp分支与当前分支比较后diff
git merge 合并diff
git pull 一次执行所有
git pull --rebase 创建tmp分支挨个线性合并,不形成菱形
git pull 等于先git fetch再git merge .
git pull 远程库地址 本地分支
等于
git fetch 远程库地址
git merge FETCH_HEAD 本地分支
5 回答2.8k 阅读
3 回答2.6k 阅读
3 回答960 阅读
1.2k 阅读
用过了就知道了,次git pull = git fetch + git merge
fetch和push命令可以分别对远程分支进行fetch和push操作,而pull不是直接跟远程分支对话的。
fetch同pull的区别在于:git fetch:是从远程获取最新版本到本地,不会自动merge
而git pull是从远程获取最新版本并merge到本地仓库
从安全角度出发,git fetch比git pull更安全,因为我们可以先比较本地与远程的区别后,选择性的合并。
git push 默认推送到master。