为什么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
答案 0 :(得分:26)
后一个命令git pull origin master
告诉git专门获取并合并master
分支(来自名为origin
的远程分支,更加精确)。
git pull
获取跟踪远程分支的所有本地分支的更新,然后合并当前分支。
答案 1 :(得分:8)
git pull
使用给定参数运行git fetch
并调用git merge将检索到的分支头合并到当前分支
当您在没有参数的情况下调用git fetch
时,会发生以下情况
从一个或多个其他存储库中获取命名的头部或标记,以及完成它们所需的对象
git fetch
[提取]来自(...)单个命名存储库(...)
添加参数时,只提取指定的remote和head(= branch / tag / commit / ...),然后合并。
答案 2 :(得分:-1)
Git pull只拉出结帐分支。
如果要使用原始远程分支更新所有本地分支。
git pull --all