当分支。<branchname> .remote和branch。<branchname>。由Git添加的.merge值?

时间:2018-05-08 14:26:17

标签: git

我想知道配置文件branch.<branchName>.remotebranch.<branchName>.merge什么时候第一次被GIT填充? (忽略用户编辑配置文件或提供直接命令添加远程等)

另外,可以通过使用push和pull命令来改变上面的内容吗?

注意:我对如何更改这些值的方式不感兴趣。就在上面的具体情况。

1 个答案:

答案 0 :(得分:1)

这些没有特定的第一次,只有设置或取消设置它们的命令。因此,必须列举可以设置它们的每个命令,以及在什么条件下:

  • git checkout

    • 如果在创建时git checkout选项--track,或者为了创建分支名称,git checkout将设置两者。
    • 如果git checkout使用 DWIM模式创建分支,git checkout将在创建分支时设置两者。

      DWIM 这里代表 Do What I Mean:在这种情况下,您指示git checkout签出不存在的分支名称,例如{ {1}}当你没有拥有一个git checkout develop时。 develop扫描所有远程跟踪名称,而不仅仅是立即失败,例如git checkoutorigin/masterorigin/developfred/master等。如果fred/feature可以找到这些远程跟踪名称的中一​​个与您使用的分支名称完全匹配,Git将创建分支,就像您说的那样git checkout

      请注意,如果您获得两个匹配(例如git checkout --track origin/developorigin/develop),则此DWIM模式会失败,您必须说fred/develop如果这就是你的意思。

    • git checkout --track origin/develop的所有其他情况既未设置也未取消设置配置项。 (因此,如果您的问题是“他们何时为新创建的分支设置”,git checkout的答案就是上述情况。)

  • git checkout

    • git branch一样,您可以在创建新分支时为其指定git checkout。这里没有DWIM模式。如果您使用--track,则会根据&lt; start-point&gt;设置两个配置设置。参数。

    • 您还可以运行--track来设置或更改某个现有分支的当前上游设置。如果它们之前未被设置,则会将它们更改为设置(为任何值);但是否这是他们设置的第一个时间取决于你是否将它们设置得更早并且未设置它们。

    • git branch --set-upstream-to有一个弃用的git branch选项,与--set-upstream的含义相同,但参数的顺序是“向后”,导致很多用户错误(这就是为什么这个被弃用了。)

    • 您可以--set-upstream-to 取消两个值。

  • git branch --unset-upstream

    • git push的大多数调用都不触及上游设置。有些人会使用它。但是,如果您将git push-u标记添加到--set-upstream命令,则推送成功,git push将立即设置两个配置项在推送目标远程和参考。
  • 当然,git push和/或手动编辑可以更改其中任何一项,但您说您并不关心这一点。