我想知道配置文件branch.<branchName>.remote
和branch.<branchName>.merge
什么时候第一次被GIT填充? (忽略用户编辑配置文件或提供直接命令添加远程等)
另外,可以通过使用push和pull命令来改变上面的内容吗?
注意:我对如何更改这些值的方式不感兴趣。就在上面的具体情况。
答案 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 checkout
,origin/master
,origin/develop
,fred/master
等。如果fred/feature
可以找到这些远程跟踪名称的中一个与您使用的分支名称完全匹配,Git将创建分支,就像您说的那样git checkout
。
请注意,如果您获得两个匹配(例如git checkout --track origin/develop
和origin/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
和/或手动编辑可以更改其中任何一项,但您说您并不关心这一点。