What is the difference between 'git pull' and 'git fetch'?
以上问题的最佳答案是
“用最简单的术语来说,git pull执行git fetch后跟git 合并或git rebase。“
我理解git fetch && git rebase
字面上是git pull
。
但是如何使用git fetch
和git merge
来获得相同的结果?
这是我的实验:
git fetch && git rebase # correctly replays remote commits in working copy
git fetch && git merge upstream/master # error
merge: upstream/master - not something we can merge
我希望git merge
能够正确重播当前工作副本中的远程提交 - 这是git pull
所做的。
答案 0 :(得分:1)
git fetch
此命令将下载远程存储库及其分支的状态,但不会对您的本地副本执行任何操作
git merge branch_to_merge
此命令将合并您当前所在分支中的branch_to_merge。你不能只输入没有参数的git merge,因为git会回复:fatal: No commit specified and merge.defaultToUpstream not set
git rebase
此命令将允许您重写分支的历史记录并将其放在指定的提交
上答案 1 :(得分:0)
您应使用git fetch + git merge
之类的git fetch; git merge origin/master
来实现与git pull
的默认行为相同的行为。但是可以更改默认行为以使用rebase。
有关merge和rebase之间差异的更多信息,请访问:git pull VS git fetch git rebase