所以我有一个 git repo 的克隆。当我做 git pull origin
它告诉我:您要求从远程“原点”拉取,但没有指定分支。因为这不是您当前分支的默认配置远程,所以您必须在命令行上指定一个分支。
我对推/拉的理解是它是针对整个仓库的,而不是特定于一个分支的。例如,如果我有 3 个分支 branch_a、branch_b 和 branch_c。我做'git pull branch_a'。我不会有其他两个分支的更改吗?
所以我有一个 git repo 的克隆。当我做 git pull origin
它告诉我:您要求从远程“原点”拉取,但没有指定分支。因为这不是您当前分支的默认配置远程,所以您必须在命令行上指定一个分支。
我对推/拉的理解是它是针对整个仓库的,而不是特定于一个分支的。例如,如果我有 3 个分支 branch_a、branch_b 和 branch_c。我做'git pull branch_a'。我不会有其他两个分支的更改吗?
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
不是有效的分支规范。