为什么“git pull”从存储库获取所有分支但“git pull origin master”不是?

时间:2013-07-05 00:35:12

标签: git

为什么git pull从存储库获取所有分支但git pull origin master没有?我发现它很难。它是这两个命令之间唯一的功能区别吗?

这样的解释告诉我什么:

git pull = git fetch origin + git merge origin/master

git pull origin master = git fetch origin master + git merge FETCH_HEAD

3 个答案:

答案 0 :(得分:26)

后一个命令git pull origin master告诉git专门获取并合并master分支(来自名为origin的远程分支,更加精确)。

git pull获取跟踪远程分支的所有本地分支的更新,然后合并当前分支。

答案 1 :(得分:8)

来自documentation of git pull

  

git pull使用给定参数运行git fetch并调用git merge将检索到的分支头合并到当前分支

当您在没有参数的情况下调用git fetch时,会发生以下情况

  

从一个或多个其他存储库中获取命名的头部或标记,以及完成它们所需的对象   git fetch [提取]来自(...)单个命名存储库(...)

添加参数时,只提取指定的remote和head(= branch / tag / commit / ...),然后合并。

答案 2 :(得分:-1)

Git pull只拉出结帐分支。

如果要使用原始远程分支更新所有本地分支。

git pull --all

Can "git pull --all" update all my local branches?