首页 > 解决方案 > git pull 和 git pull origin 有什么区别

问题描述

我有一个父分支origin/develop,从这个分支我创建了一个子分支feature/NewFeatureBranch

我现在正在feature/NewFeatureBranch使用git checkout feature/NewFeatureBranch

现在我已经完成git pull并且可以看到几个新的分支下载到我的本地机器上,它们都有父级develop

在另一种情况下,我已经完成了git pull origin develop,在这种情况下,从其他分支新签入的文件develop正在下载。

git pull的行为git fetchgit pull origin develop行为一样吗git fetch + git merge

标签: gitgithubbitbucket

解决方案


文档的第一句话:

在其默认模式下, git pull 是git fetch后跟 git merge的简写FETCH_HEAD

所以git pull只是简写。Git 对您的意思做了一些假设,并提供了缺失的部分。因此,默认情况下,它的简写是:

git fetch
git merge <remote-tracking-branch-that-current-branch-tracks> [into the current branch]

同样,如果你真的给了一个遥控器和一个分支,你仍然是在说:

git fetch remote
git merge remote/branch [into the current branch]

您可以更改速记的含义(作为config设置的一部分),例如改为rebase代替merge,但大多数人不这样做。一般来说,有些人认为最好不要说git pull,而是直接说 thefetch和然后,如果需要,明确地说 themerge或 the或任何东西。rebase这使您有机会“环顾四周”并决定如何进行。


推荐阅读