"origin"之后的分支是本地分支还是远程分支?

Is the branch after "origin" the local branch or the remote branch?

我正在努力学习 git 但我对其中一部分感到困惑。通常我使用:

git pull origin branch_A

获取远程分支。通常我当前的本地分支是 branch_A 远程存储库上的分支也是 branch_A ,所以我会得到 remote/branch_A -> local/branch_A。但是如果我想得到remote/branch_B -> local/branch_A怎么办呢? origin后面的分支的真正含义是什么?是远程分支还是本地分支?这个命令是指 fetch default remote branch to local branch_A 还是 fetch remote branch_A to current local branch

在命令中

git pull origin branch_A

origin指的是你在Git配置的远程仓库。因此,这会将更改从远程 branch_A 拉入跟踪此远程的本地分支。另一方面,

git pull origin/branch_A

将从上次拉取时缓存的 origin/branch_A 分支的本地版本中拉取更改。

如果你真的想让你的本地 branch_A 跟踪远程 branch_B 那么下面的命令可以做到这一点:

git checkout -b branch_A origin/branch_B

如果你已经有一个本地branch_A跟踪其他东西(例如远程branch_A)那么你必须先杀死分支然后重新创建它。

存储库名称后的分支是远程分支。

这就是文档所说的 git-pull

您总是拉取您在本地存储库中的分支。

但是,还有另一种可能性,如果你有一个本地分支跟踪一个远程分支,那么该命令意味着你将拉入你当前的分支,你的本地分支所跟踪的远程分支中的内容.