git推送2个遥控器的意外行为
我有以下设置: 遥控器: 起源,维杰 本地分行:git推送2个遥控器的意外行为,git,Git,我有以下设置: 遥控器: 起源,维杰 本地分行: 主人 14.4_-dev(通过git签出源代码/14.4_-dev-B14.4_-dev创建) 14.4_各种_功能(通过签出vijay创建/14.4_各种_功能-b 14.4_各种_功能) 当我使用14.4_各种功能分支并执行git push时,它会将我的本地分支(如master和14.4_dev)推送到vijay remote。这是预期的行为吗?是。请参阅有关仅运行git push时如何更改行为的说明: 推送。默认值 定义在没有明确给出r
- 主人
- 14.4_-dev(通过git签出源代码/14.4_-dev-B14.4_-dev创建)
- 14.4_各种_功能(通过签出vijay创建/14.4_各种_功能-b 14.4_各种_功能)
。不同的值非常适合特定的工作流;例如,在一个纯粹的中心工作流中(即获取源等于推送目标),上游可能是您想要的。可能的值为:
nothing
-除非明确给出了refspec,否则不要推送任何内容(错误)。这主要是针对那些希望通过总是直言不讳来避免错误的人
current
-推动当前分支以更新接收端上具有相同名称的分支。适用于中心和非中心工作流
上游
-将当前分支推回到其更改通常集成到当前分支中的分支(称为@{upstream})。只有当您推送到通常从中提取的同一存储库(即中心工作流)时,此模式才有意义
simple
-在集中式工作流中,如果上游分支机构的名称与本地分支机构的名称不同,则可以像上游分支机构一样工作,增加安全性,拒绝推送
当按下一个不同于您通常从中拔出的遥控器的遥控器时,以电流的方式工作。这是最安全的选择,适合初学者
匹配
-在两端推送具有相同名称的所有分支。这会使您正在推送的存储库记住将被推送出去的分支集(例如,如果您总是在那里推送maint和master,而没有其他分支,那么您推送到的存储库将有这两个分支,而您的本地maint和master将被推送到那里)
为了有效地使用此模式,您必须确保在运行git push之前,您要推出的所有分支都已准备好推出,因为此模式的全部要点是允许您一次性推出所有分支。如果通常只在一个分支上完成工作并推出结果,而其他分支未完成,则此模式不适合您。此外,此模式不适合推入共享中心存储库,因为其他人可能会在其中添加新分支,或更新您无法控制的现有分支的提示
很可能当前设置为匹配
,而您更喜欢简单
或上游`。在.git/config
文件中,您可以选择哪个是每个分支的默认远程。在这一点上,它可能会说
[branch "master"]
remote = vijay
merge = refs/heads/master
[branch "14.4_various_features"]
remote = vijay
merge = refs/heads/14.4_various_features
[branch "14.4_dev"]
remote = origin
merge = refs/heads/14.4_dev
根据您的全球git推送策略,推送可能会实现您所描述的功能。除非您的策略设置为“当前”,否则git将在您的分支上进行迭代,并将它们中的每一个推送到各自远程中的匹配分支
还有推git
这意味着“未给出参考规范”。
在这一点上,对于Git2.26(2020年第1季度),请注意明确删除了“”术语
参见(2020年1月29日)作者。
(由年合并,2020年2月12日)
:从push.default说明中删除“显式给定”
签字人:杰夫·金
push.default
的文档提到,如果没有“明确给出”refspec,则使用它。
让我们在这里放弃“显式”的概念,因为它是模糊的,只要提到任何地方的任何refspec都足以覆盖它
我也从下面“无”值的定义中删除了“显式给定”的内容。这与我们的澄清非常接近,很明显我们在这里指的是同一类型的“给定”
作为:
我不确定故意设置remote.*.push
配置的行为不应被视为用户对Git的明确请求
紧接着上述内容,将读取其中一个可能值的说明:
nothing
-除非明确给出了refspec,否则不要推出任何内容(错误)。
这主要是针对那些希望通过总是直言不讳来避免错误的人
这可能需要调整以保持整体连贯。
如果我们决定说设置配置不算显式,
然后,应将“除非明确给出参考规范”更新为
匹配。
可能还有其他提到的“显式”需要调整(我没有搜索它,但上面的一个是相邻的,我看不到)
如果我们必须更改描述中的任何内容,我会说我们可以直接删除“显式”。
有多种方法可以从命令行remote.*.git/remotes
文件等中推送configuration来提供refspec
如果是“如果您从命令行提供refspec,则会发生X,但提供配置源refspec不会导致X发生”,这可能是发明和使用本段中未使用的新短语“隐式提供”的一个很好的理由。
但是,push.default
只有在这些方法都不用于提供任何refspec时才起作用,因此我认为,在讨论此功能时,命令行源refspec和配置源refspec之间没有太大区别
谢谢你。它确实是匹配的。我不介意