我对在git签出中何时使用-t以及何时不使用-t感到困惑

我对在git签出中何时使用-t以及何时不使用-t感到困惑,git,Git,实际上,我并不了解以下两者之间的确切区别: git checkout branchName和git checkout-t branchName。只有在创建新的(本地)分支时才使用-t(或--track)选项,该分支应与远程上的特定分支相关(通过特定远程跟踪引用) 即使这样,该选项也常常是不必要的,因为git中内置了一种速记方法,用于最常见的情况:创建一个本地分支来跟踪来自远程站点的同名远程分支[1]。在这种情况下,你可以说 git checkout myBranch 由于本地分支不存在,但确实

实际上,我并不了解以下两者之间的确切区别: git checkout branchName和git checkout-t branchName。

只有在创建新的(本地)分支时才使用
-t
(或
--track
)选项,该分支应与远程上的特定分支相关(通过特定远程跟踪引用)

即使这样,该选项也常常是不必要的,因为git中内置了一种速记方法,用于最常见的情况:创建一个本地分支来跟踪来自远程站点的同名远程分支[1]。在这种情况下,你可以说

git checkout myBranch
由于本地分支不存在,但确实存在一个远程跟踪ref
remotes/*/myBranch
,git认为您需要创建新分支并跟踪远程分支

如果速记不起作用,比如说因为你有
remotes/origin/myBranch
remotes/upstream/myBranch
,那么你可以指定跟踪哪个

git checkout -t remotes/origin/myBranch
如果由于您希望在本地使用不同的分支名称而无法使用速记,则可以将
-t
与-b`组合使用

git checkout -t -b localBranch remotes/origin/myBranch

[1] 只要一个遥控器有一个给定名称的分支