2

我需要在两个不同的 git 存储库之间同步,但是两个存储库都具有相同的项目代码/文件和不同的包结构。

当前面临的问题是我需要克隆并推送更改 2 次,是否可以从一次推送中推送到两个存储库

例子

回购1:com/example1/demo/DemoService.java

Repo2:com/eample2/demo/DemoService.java

注意:两个 repos 中的文件是相同的,唯一的变化是包结构)

现在,当我在 com/example1/demo/DemoService.java 中进行更改并从本地推送时,它应该被推送到 example1 和 exmaple2,这可能吗?如果是,请告诉我需要执行哪些必要步骤。

4

2 回答 2

0

这不是直接可能的,因为结构的变化意味着历史的变化(树 SHA1 不会相同)

您可能会考虑推送到中间本地 Repo1 克隆,该克隆将具有本地接收后挂钩。

那个钩子会:

  • 推送到远程Repo1
  • 转到本地克隆的 Repo2
  • 复制刚刚修改的文件,并进行本地提交
  • 推送到远程 Repo2

这样:一次推送,重复文件会在两个远程存储库中自动更新。

于 2019-11-04T05:50:16.047 回答
0

您的问题的另一个解决方案可能是使用 git 子模块(https://git-scm.com/book/en/v2/Git-Tools-Submodules)。

您将有一个 git repo 保存您的 java 代码,来自您示例中的 /demo 路径,以及另外两个存储库,一个用于每个包名称。

你能否描述一下为什么你需要在两个不同的仓库和不同的包中使用相同的代码?也许有更好的方法来解决整个问题。

于 2019-11-04T10:49:13.887 回答