0

所以我有一个 git repo 的克隆。当我做 git pull origin

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

我对推/拉的理解是它是针对整个仓库的,而不是特定于一个分支的。例如,如果我有 3 个分支 branch_a、branch_b 和 branch_c。我做'git pull branch_a'。我不会有其他两个分支的更改吗?

4

1 回答 1

8

git pull 是以下各项的组合:

git fetch
git merge

wheregit 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 merge,origin不是有效的分支规范。

于 2013-09-07T09:04:59.923 回答