如何使用`git merge`来实现与`git pull`相同的结果?

时间:2013-11-21 09:08:33

标签: git

What is the difference between 'git pull' and 'git fetch'?

以上问题的最佳答案是

  

“用最简单的术语来说,git pull执行git fetch后跟git   合并或git rebase。“

我理解git fetch && git rebase字面上是git pull

但是如何使用git fetchgit 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所做的。

2 个答案:

答案 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