git branch --track vs -u 区别

git branch --track vs -u difference

我有一个本地分支,我想 link 到远程分支。因此,当我执行 git pull 时,它将自动使用 linked 远程分支

我尝试使用 git branch --track origin/branchname 但它做了一件奇怪的事情并创建了一个名称为 origin/branchname 的标签 git pull 仍然没有自动 select linked 分支

另一方面,git branch -u origin/branchname 确实有效并且 git pull autoselect 的正确分支

--track-u 有什么区别?

git branch 命令做了(无论如何在我看来)太多不同的事情。

特别是,您可以要求它创建一个分支——一个新的分支名称,即;请参阅 What exactly do we mean by "branch"?— 包含该新名称的各种设置。

您也可以要求它修改 一个现有的 分支,这正是您想要做的。 -u--set-upstream-to 选项执行此操作。

--track选项用于创建新分支:

I tried to use git branch --track origin/branchnamebut it did a weird thing and created kind of a tag with name origin/branchname

更具体地说,它创建了一个名为 origin/branchnamelocal 分支。通常任何时候你看到 origin/fooorigin/masterorigin/whatever,这些都是 remote-tracking branches(参见链接的问题)。使用这样的名称创建 local 分支只会使事情变得混乱。 (Git 不会有任何问题,它只会让人类感到困惑。:-) )