什么';这是git之间的区别--轨道“;及--将上游设置为";?
正如我所看到的,git什么';这是git之间的区别--轨道“;及--将上游设置为";?,git,Git,正如我所看到的,git--track和--set upstream to修改分支,使其成为跟踪(或上游)分支。但我无法理解的细微差别在哪里。--track记录“远程分支跟踪本地”: --将上游设置为记录“本地分支跟踪远程分支”: 这两者有什么区别?我确信“跟踪分支”是一个简单的概念,在分支内部有额外的上游指针,跟踪头指定分支在远程存储库中的位置。但看起来要复杂得多 $ git checkout foo -b $ git branch --track origin/retarget 前两个命令指
--track
和--set upstream to
修改分支,使其成为跟踪(或上游)分支。但我无法理解的细微差别在哪里。--track
记录“远程分支跟踪本地”:
--将上游设置为
记录“本地分支跟踪远程分支”:
这两者有什么区别?我确信“跟踪分支”是一个简单的概念,在分支内部有额外的上游
指针,跟踪头
指定分支在远程
存储库中的位置。但看起来要复杂得多
$ git checkout foo -b
$ git branch --track origin/retarget
前两个命令指示git:
- 创建一个名为“
”的本地分支(非常糟糕,因为它被命名为远程跟踪分支),而实际上它是一个简单的本地分支,名称中有“origin/retarget
”)/
- 从当前分支开始(“
”,另一个本地分支)foo
- 使新的本地分支跟踪其起点
branch..remote
和branch..merge
配置条目,将起点分支标记为新分支的“上游”
从远程跟踪分支开始创建分支时,将使用跟踪
换句话说,您的第一个示例不是如何使用--track
这样做会更好:
git checkout -b foo --track origin/retarget
至于
--跟踪
和--之间的差异,将上游设置为
:
--set-upstream-to
如果指定的分支还不存在,或者已经给出了--force
,则其行为与--track
否则设置配置,如创建分支时的
--track
所做的,但分支指向的位置未更改
假设您有一个签出的
master
分支
$ git branch --track someBranch
您将创建一个名为someBranch
的新分支,该分支的更改将根据master
分支进行跟踪。但是该分支没有远程分支集。因此,您可以在git配置中看到remote=。
现在跟踪了someBranch
,这意味着更改将出现在git status
和git branch-v
中,就像远程存在一样
例如,如果您在someBranch
git上进行提交,当您执行git分支-v
或执行git status
时,git会告诉您您是1号
Your branch is ahead of 'master' by 1 commit.
这是最有趣的部分。分支被跟踪,git显示它比master
早1次提交(创建someBranch
时签出的分支)
--set-upstream-to
$ git branch --track someBranch
Your branch is ahead of 'master' by 1 commit.