git - 我们可以在不同的远程存储库中设置分支的上游吗
问题描述
在配置文件中,一个分支被设置为在远程存储库中有一个上游
[branch "mybranch"]
remote = myremote
merge = refs/heads/mybranch
我们是否可以在第三个远程存储库中设置上游,以便当当前分支为 时mybranch
,git push <remote>
无需refspec
为分支指定即可工作?例如,以下是否可行?
[branch "mybranch"]
remote = myremote
merge = refs/heads/mybranch
[branch "mybranch"]
remote = yourremote
merge = refs/heads/mybranch
解决方案
例如,以下是否可行?
[branch "mybranch"] remote = myremote merge = refs/heads/mybranch [branch "mybranch"] remote = yourremote merge = refs/heads/mybranch
不。Git 配置文件足够灵活,可以支持这一点,尽管不需要第二部分。也就是说,您可以更简单地写成:
[branch "mybranch"]
remote = myremote
remote = yourremote
merge = refs/heads/mybranch
但只有少数 Git 部分使用了多种设置。1 该git push
命令特别决定您是否指定了远程,如果没有,它将获取最后一个设置(当前分支在哪里)。然后它决定你是否指定了一个 refspec,如果没有,则使用你的设置来决定如何要求另一个 Git 根据你的当前提交更新它的名称之一。所以:branch.branch.remote
branch
push.default
branch
- 如果你指定一个
remote
参数,这两个远程设置是不相关的; - 如果没有,Git 会选择最后一个。
这意味着除最后一项之外的所有设置都变得无关紧要。
(有多种方法可以使用三角工作流,您可以从一个存储库获取但推送到另一个存储库,但这不是一种。使用谷歌搜索找到一些。)
1该git fetch
命令确实使用了多个设置:fetch = ...
当它执行默认设置时,它采用任何给定遥控器的所有设置git fetch
。那是:
[remote "origin"]
fetch = +refs/heads/master:refs/remotes/origin/master
fetch = +refs/heads/develop:refs/remotes/origin/develop
生成一个类似于单分支克隆的存储库,不同之处在于它是我们可以称之为双分支克隆的东西。
推荐阅读
- javascript - 使用 Polymer Templatizer 标记模板
- math - 如何在graphviz中包含元素符号?
- c# - Sql Query with Dapper 返回一个空结果,但是来自 profiler 的请求结果不为空
- unity3d - 从另一个脚本访问组件
- kivy - 使用多个多点触控显示器在 kivy 应用程序中触控无法正常工作
- php - WP_Query 需要 3-4 秒执行,优化建议?
- javascript - 使用 Vue I18n 的 Vue.js 项目出现以下错误:“TypeError: i18n is undefined”
- javascript - 在超时函数中调用 $scope
- java - percona server 5.7 数据库与 Java
- database - 如何使用 spark-sql 删除 hive 数据库?