checkout命令中的上游模式有什么不同?

时间:2016-05-08 14:38:41

标签: git

使用upsreamMode的git中的checkoutCommand有什么不同

TRACK,
NOTRACK,
SET_UPSTREAM;

创建或签出分支时它有不同的含义吗?

1 个答案:

答案 0 :(得分:3)

来自Git documentation

  

当从远程跟踪分支启动本地分支时,Git设置分支(特别是branch..remote和branch..merge配置条目),以便git pull将从远程跟踪分支适当地合并。

考虑以下场景,在Git存储库中存在一个名为feature的分支,并且您想从中创建一个本地分支:

git checkout origin/feature
git checkout -b feature

现在,本地分支feature将跟踪对存储库中对应方所做的更改。这意味着当您的本地分支git pull何时可以与远程同步。但是假设您希望您的本地feature分支跟踪任何内容。 Git文档说明:

  

可以使用--track和--no-track选项覆盖该设置,稍后使用git branch --set-upstream-to进行更改。

在我们的示例中,您可以通过以下方式实现此目的:

git checkout origin/feature
git checkout -b --no-track feature

现在,git pull您的本地feature分支将不会更新。

但是假设您稍后决定您确实希望您的本地feature分支跟踪遥控器上的对应分支。然后你可以使用以下内容:

git checkout feature
git --set-upstream origin/feature