我运行了'git branch -r'并获得了以下结果:
origin/branch1
origin/branch2
从官方手册中可以得知,使用-r选项将“列出或删除(如果与-d一起使用)远程跟踪分支”。 因此,origin/branch1和origin/branch2被称为远程跟踪分支。 然而,您不能直接提交到远程跟踪分支(会创建一个匿名分支)。 远程跟踪分支仅在运行'git fetch'时跟踪远程分支。
这就是我感到困惑的地方。 如果我然后运行了:
git checkout -b branch1 origin/branch1
我将得到以下输出:
"分支branch1已设置为跟踪来自origin的远程分支branch1。 切换到了新分支'branch1'"
我的问题如下,为了澄清困扰我的问题:
通过设置branch1跟踪来自origin的远程分支branch1,'branch1'是否因此被视为远程跟踪分支? 如果是,这难道不与在运行'git branch -r'时已经列出的'remote-tracking branch' 'origin/branch1'相冲突吗? 我理解的是,存在本地(主题)分支或远程跟踪分支。 当运行'git checkout -b branch1 origin/branch1'时,我是否正在创建一个本地(主题)分支(可以在其中添加提交),该分支通过获取跟踪远程分支? 运行'git branch'现在给出'* branch1',而运行'git branch -r'仍然给出'origin/branch1'和'origin/branch2'。 我创建了branch1以添加提交并跟踪origin/branch1。 哪个被视为远程跟踪分支,是'git branch'输出的'branch1'还是'git branch -r'的 'origin/branch1'?