git - 当分支。.remote 和分支。.merge 由 Git 添加的值?
问题描述
我想知道配置文件中什么时候branch.<branchName>.remote
第branch.<branchName>.merge
一次被 GIT 填充?(忽略用户编辑配置文件或直接命令添加远程等)
此外,是否可以仅通过使用推送和拉取命令来更改上述内容?
注意:我对如何更改这些值不感兴趣。只是在上面的特定情况下。
解决方案
这些没有特定的第一次,只有设置或取消设置它们的命令。因此,必须枚举可以设置它们的每个命令,以及在什么条件下:
git checkout
:- 如果在创建时
git checkout
给出了--track
选项,或者为了创建一个新的分支名称,git checkout
将同时设置两者。 如果
git checkout
是使用DWIM 模式创建分支,git checkout
则在创建该分支时将两者都设置。DWIM在这里代表Do What I mean:在这种情况下,您指示
git checkout
检查一个不存在的分支名称,例如,当您git checkout develop
没有. 扫描您的所有远程跟踪名称,而不是立即失败,例如、、、等等。如果可以找到与您使用的分支名称完全匹配的远程跟踪名称之一,Git 将创建该分支,就像您说.develop
git checkout
origin/master
origin/develop
fred/master
fred/feature
git checkout
git checkout --track origin/develop
请注意,如果您得到两个匹配项(例如,两者都
origin/develop
存在fred/develop
),则此 DWIM 模式将失败,您必须说明git checkout --track origin/develop
这是否是您的意思。所有其他
git checkout
既不设置也不取消设置配置项的情况。(因此,如果您的问题是“何时为新创建的分支设置”,则答案git checkout
在上述情况下。)
- 如果在创建时
git branch
:与您在创建新分支时
git checkout
可以给它一个选项一样。--track
这里没有 DWIM 模式。如果您使用--track
,则根据 <start-point> 参数设置两个配置设置。您还可以运行
git branch --set-upstream-to
以设置或更改某些现有分支的当前上游设置。如果它们之前未设置,这会将它们更改为设置(设置为任何值);但是这是否是第一次设置取决于您是否更早设置它们并取消设置它们。git branch
有一个不推荐使用的--set-upstream
选项,它的含义相同,--set-upstream-to
但参数的顺序是“向后”,这会导致很多用户错误(这就是不推荐使用的原因)。您可以
git branch --unset-upstream
取消设置这两个值。
git push
:- 大多数呼吁
git push
不要触及上游设置。有些人会使用它。但是,如果您在命令中添加-u
or--set-upstream
标志并且推送成功,将立即根据推送目标远程和引用设置这两个配置项。git push
git push
- 大多数呼吁
当然,
git config
和/或手动编辑可以更改其中任何一个,尽管您说您不在乎。
推荐阅读
- laravel - laravel 中的雄辩关系
- python - SQLALCHEMY - 多对多一元关系
- git - Git合并合并所有跟踪文件(快照)或更改的文件?
- python - 在 Shiny 中,Python 虚拟环境 PERMISSION DENIED(错误 126)
- asp.net-core - 无法为 ASP.Net Core 2.0 解析类型 Microsoft.AspNetCore.Identity.RoleManager 的服务
- c++ - c++ [] 与向量<向量
> - wildfly-swarm - Wildfly-Swarm 启用调试
- python - JSON的Django外键
- firebase - Flutter/Dart Firebase Auth:更新个人资料 photoUrl 时崩溃
- r - 如何计算 dttm 变量的持续时间?