【问题标题】:How to keep two git repos synchronized?如何保持两个 git repos 同步?
【发布时间】:2011-12-01 07:41:33
【问题描述】:

我正在托管设施的私人服务器上运行我自己的私人 git 存储库。我将它用于我无法开源的任何私人项目。我所有的开源工作都使用 github。

我在桌面 ubuntu 机器和我的 MacBookPro 上进行开发。当我对我的开发系统进行更改时,我将更改推送到 colo 中的原点并拉到另一个系统。在大多数情况下,我很擅长让所有三个系统都保持最新状态,主要用于备份和灾难恢复目的。

现在 BitBucket 正在免费提供私人 git 托管,我正在考虑在那里添加我的项目的克隆。此外,我可以使用我的准系统私有 git 服务器不提供的 BitBucket 提供的额外功能。但是,我想继续在我的 colo 服务器上保留一份私有 repos 的副本,以便备份冗余。

所以我有几个问题:

  1. 在不更改我的标准开发流程(编辑、添加、提交、推送)的情况下,如何自动将推送到我的服务器的提交同步到 bitbucket 项目?每当我推送到我的 git 服务器时,我都希望这些提交能够自动推送到我的 bitbucket 项目中。我不想改变我的工作流程,并且希望对我的开发客户做一些必要的改变。

  2. 如果我想使用 bitbucket 作为我的主要 git 存储库,如何将我的项目从我的私有 git 服务器迁移到 bitbucket?

  3. 一旦我迁移到 bitbucket,我仍然希望在我的服务器上进行另一个备份。如何自动将对 bitbucket 的提交推送到我的 git 服务器?这基本上是问题 1 的反面。

【问题讨论】:

    标签: git github bitbucket


    【解决方案1】:

    也许您可以在您的私人服务器上添加一个 git 挂钩以自动推送到 bitbucket。

    在 pro git 书中,有一个关于 git hooks 的章节:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

    【讨论】:

    • 感谢您的链接,看来它会有所帮助。
    【解决方案2】:

    对于 #1,最简单的解决方案是在远程存储库上使用挂钩,自动推送到 BitBucket。

    对于 #2:您只需将 bitbucket 添加为远程并推送到它而不是源。如果您有任何跟踪分支(检查.git/config),请将remote = origin 更改为您用于bitbucket 的任何名称。另一种解决方案是删除/重命名您现有的 origin 遥控器并将 bitbucket 添加为来源。

    对于 #3:执行 git fetch 的 cronjob 可能是执行此操作的最简单方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2013-06-12
    相关资源
    最近更新 更多