java - 如何将两个远程 git 存储库链接到一个本地存储库并从两者灵活同步?
问题描述
我一直在使用 Git (Bitbucket),并且我知道如何将多个远程存储库链接到一个本地存储库,正如我在许多在线可用教程中看到的那样,例如https://jigarius.com/blog/multiple-git-远程存储库和这个https://www.cloudsavvyit.com/2464/how-to-use-git-with-multiple-remote-repositories/
我想要达到的目标几乎没有什么不同。我有两个远程存储库,比如说repo1
和repo2
. 两个存储库都包含 3 个分支 -master
分支、release/1.0
分支和release/2.0
分支。我的项目是一个通用的 Java 应用程序。repo1
仅包含 java 文件,而repo2
仅包含 JAR 文件,它们是二进制文件。
我没有像 maven 这样的依赖管理系统。我正在尝试实现这一点 - 当我切换到release/1.0
分支时,我的 java 文件将根据更改,repo1
JAR 文件也应根据repo2
. 同样,当我切换到release/2.0
分支时,我的 java 文件应该根据更改,repo1
JAR 文件也应该根据repo2
. JAR 文件在发布分支中有所不同。
我不会将 JAR 文件推送到repo2
,我没有这样的用例。我也只会将 Java 文件推送到repo1
.
这可能吗?还是有任何解决方法可以实现这一目标?
谢谢。
解决方案
如果您的文件已正确分离,则可以使用 git 子模块。
基本上,您在 git 中将 repo2 作为依赖项添加到 repo1。这样,您就可以在本地拥有所有文件,但将它们分成两个存储库。但是,当您为 repo1 创建一个新分支时,您还必须为 repo2 创建一个新分支并将其链接到新的 repo1 分支。
通常这就像一个依赖通常会:你的子模块是 repo2 的特定提交。当你想更新时,你更新到一个新的提交。因此,您必须解决此问题才能实现您的特定用例。
编辑:
对于初学者,您可以使用 向您的 repo 添加一个子模块git submodule add http://repo2.git
,这将创建一个新文件夹repo2
,这将是您的 repo2 的根目录。在那里你可以像在另一个仓库中一样工作。您的 repo 只会添加该配置。
当您想要更新时,您可以转到repo1
根目录并使用git submodule update --remote
.
推荐阅读
- impala - Impala 从一张表插入到另一张表
- swift - 使用它的detailTextLabel 自动调整tableview 单元格的大小?
- javascript - Javascript 的脚本没有运行两次
- shell - 通过路由进行多页导航
- ajax - 即使 url、路由器和控制器指向同一个地方,Laravel 和 Ajax 也会根据请求返回 404
- javascript - 使用 Javascript 动态更改 ifarme 中的过滤器
- django - 图像未在呈现的 pdf 中显示
- javascript - 如何在后台预加载数据(Angular Web App)
- redis - redisModule 可以在集群模式下访问不同节点上的密钥
- reactjs - minDate props 覆盖 Material-ui Datepicker 的 null 状态值