git set-upstream-to VR track

时间:2014-09-28 23:32:53

标签: git github version-control git-branch git-remote

最近我尝试设置我的本地分支feature来跟踪我的远程分支上的更改,如下所示:

$ git branch --set-upstream feature origin/feature

一切顺利,但我得到了这样的信息:

The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to

我的问题是如何使用trackset-upstream-to选项以及它们之间是否存在显着差异?

更新:我使用git版本1.8.4

2 个答案:

答案 0 :(得分:2)

创建新分支时要使用--track标志:

git branch --no-track foo origin/master  # new local foo, with no upstream
git branch --track bar origin/master     # new local bar, tracks origin/master

在这两种情况下,你告诉git要创建新的本地分支,当前它指向由第二个参数(这里为origin/master)标识的提交。然后,分支机构也不会或不会跟踪"跟踪"另一个分支(这意味着git status会说ahead 2, behind 1git pull等内容会知道要合并的内容。

如果您未指定这两个选项,git branch会根据您是否为其提供第二个参数来猜测是否跟踪(但另请参阅branch.autosetupmerge配置标志)。 (这与git checkout略有不同,其分支名称不存在;这会查找远程跟踪分支,其中包含"类似的#34;名称。

对于参数顺序/展示位置,旧--set-upstream和新--set-upstream-to相同,除外。修复的问题是,要将foo更改为跟踪origin/master,您必须写下:

git branch --set-upstream foo origin/master

"看起来像"您要求将origin/master设置为foo作为其上游。用:

git branch --set-upstream-to=origin/master foo
很明显,您已将foo设置为origin/master作为其上游。此外,这允许您设置当前分支的上游,而无需编写当前分支的名称

git branch --set-upstream-to=origin/master

更像是剩余的git branch命令(它们都默认为在当前分支上工作)。

请注意,分支已存在后,将使用旧的set-upstream和新的set-upstream-to。 (另外,用猫在膝盖和键盘上行走来输入这些答案很难:-))

答案 1 :(得分:1)

在Git中,跟踪(或具有上游)的分支在存储库配置文件(/.git/config)中具有类似于以下内容的条目

[branch "feature"]
        remote = origin
        merge = refs/heads/feature

您使用的“--set-upstream”选项已直接替换为“--track”

所以

git branch --track feature origin/feature

此外还有一种新的语法,如

git branch --set-upstream-to=origin/feature feature

以及

git branch -u origin/feature feature

所有表格的功能相同。