在Git-config中,您可以看到:
简单 - 在集中式工作流程中,像上游一样工作,如果上游分支的名称与本地分支不同,则会增加安全性以拒绝推送.
当推送到与您通常拉出的遥控器不同的遥控器时,请作为当前工作.
所以Git必须那样工作之间做出选择upstream或者current.但如何Git检测工作流程类型?是否Git觉得工作流程是centralized,如果明白我们想要一个沟通bare信息库?
upstream您链接的相同文档中的描述为您提供了问题的答案.
如果您要推送到通常从中拉出的相同存储库(即中央工作流),则此模式才有意义.
因此,在这种情况下,"中央工作流程"被定义为"无论您是使用rebase还是合并,都可以推送到同一个仓库,从而获得最新的上游变更".(pull = fetch + merge或fetch + rebase,具体取决于配置和参数)
无论您是否具有"中央工作流程",在这种情况下,每次推送呼叫都可能不同.如果您要为您的本地分支设置远程跟踪分支(上游分支),那么此跟踪分支是您通常从中获取更新的地方(它是您跟踪的分支),因此如果您执行rebase或合并(或拉当然,因为它是fetch + merge或fetch + pull)而没有指定要重新绑定到什么或要合并什么,然后使用远程跟踪分支.
现在,如果你推动,Git知道你是否推送到你设置为跟踪分支的同一个遥控器的同一分支,以便推送你的本地分支.如果匹配,则在此上下文中具有被定义为"中央工作流"的内容,并且upstream如果没有或者如果没有设置跟踪分支(也是"非"的情况),current则使用该中心工作流.
不同之处是:
目前:
foo跟踪远程分支bar/baz:
foo如果不另外说明,则按下分支. foo跟踪远程分支bar/foo:
foo如果不另外说明,则按下分支. foo不跟踪任何远程分支:
foo如果不另外说明,则按下分支.上游:
foo跟踪远程分支bar/baz:
bar,baz如果不另外说明,则推送到分支. foo跟踪远程分支bar/foo:
bar,foo如果不另外说明,则推送到分支. foo不跟踪任何远程分支:
简单:
foo跟踪远程分支bar/baz:
bar,您会收到一个错误,告诉您在名称不匹配时显式推送foo.foo跟踪远程分支bar/foo:
foo如果不另外说明,则按下分支. foo不跟踪任何远程分支:
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |