【问题标题】:Git, repo, and keeping things in syncGit、repo 和保持同步
【发布时间】:2013-07-19 17:09:28
【问题描述】:

我已经在网站上搜索了这个问题的答案,虽然我学到了很多东西,但我仍然有一个问题,也许有人可以提供帮助。

我们的 deb 团队有一个从 google 分支派生的内部 Android 存储库。我们必须与客户合作,因此我设置了一个 cron 作业以在客户可访问的机器上同步 repo。这使内部存储库成为主存储库。

现在,当然,我有客户需要推送更新,他们只能访问外部服务器。这导致了一个难题:如果我不使用“repo sync”来保持外部存储库与内部存储库保持同步,它将有效地消除客户推送到外部存储库镜像的任何更改。

最合乎逻辑的解决方案是让外部成为主服务器并强制内部同步它,但我认为我无法说服 deb 团队这样做。

我考虑过提交后挂钩与内部同步,但似乎它们只适用于单个 git 存储库,我必须找到所有 .git/post-commit 文件来制作变化。

有没有更简单的方法来实现这一点?

【问题讨论】:

  • 我做对了吗:您的团队正在处理“内部”回购,而客户的团队正在处理“外部”回购。您想确保这些存储库彼此保持同步 - 内部的任何更改都将立即合并到外部,反之亦然?

标签: git repository


【解决方案1】:

您应该将外部 repo 视为内部 repo 的一个分支,并在适当的时候合并您的结果。

这实际上取决于您如何与外部团队合作。

但我假设您正在处理类似的代码,因此您将在代码审查后合并回内部存储库(?)。

您的内部团队也在本地处理存储库的分叉。他们可能有权也可能无权直接推送到回购 - 不确定。

你必须决定你的合并策略,你在 repos 之间有什么看门人,如果没有,那么你应该设置 2 个 post-receive 钩子,一个在内部,另一个在外部,以保持两个 repos 不变同步(向/从另一个仓库发起拉/推)。

如果您在钩子中遇到错误,您很可能必须手动更正该问题 - 因此请记住发送电子邮件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多