git pull:为什么需要一个特定的分支?

时间:2013-09-07 08:57:52

标签: git

所以我有一个git repo的克隆。我什么时候做的     git pull origin

它告诉我:     您要求从远程“原点”拉出,但没有指定     分店。因为这不是默认配置的远程     对于当前分支,必须在命令行上指定分支。

我对推/拉的理解是它适用于整个回购,而不是特定于分支。例如。如果我有3个分支branch_a,branch_b和branch_c。我做'git pull branch_a'。我不会从其他两个分支机构进行更改吗?

1 个答案:

答案 0 :(得分:8)

git pull是以下内容的组合:

git fetch
git merge

其中git fetch不需要分支规范,因为它只是将远程引用与原始仓库的相应头部引用对齐(尽管它需要的是远程仓库规范“如果”你有超过一个远程配置)

git merge绝对需要分支规范,因为你要求git将一些分支合并到当前签出的分支

所以当你说git pull origin时,你实际上是在要求git执行:

git fetch origin      // Where origin is treated as a remote repo specification
git merge origin      // Where origin is treated as a branch specification

但显然对于git mergeorigin不是有效的分支规范。