【问题标题】:Is it possible with one push to update two separate repositories?是否可以一键更新两个单独的存储库?
【发布时间】:2012-03-01 10:50:19
【问题描述】:

正如标题中的问题所述。

一点背景: 我们公司正在外包,但我们希望外包人员拥有最新的代码并使用最佳实践(如源代码控制)。现在我们也在做内部开发。出于保密原因,我们不想让他们访问我们的内部源代码控制,但我们将在一些项目上进行合作。

有没有办法,当我从我们这边推送时,我可以同时更新我们内部的 git 设置和外包商的 git 存储库?

【问题讨论】:

    标签: git version-control git-push


    【解决方案1】:

    是的,您可以这样做。在您的内部存储库中使用一个挂钩来触发(保存的凭据)推送到远程存储库。

    另一种方法是不时运行批处理同步脚本。

    第三种可能不太有效的方法是使 git commit 在本地被挂钩以提交到两个 repos。我不推荐这种方法。

    【讨论】:

      【解决方案2】:

      其实我以前也做过。我的 .git/config 文件如下所示:

      [remote "github"]
          url = git@github.com:mattborn/raplets.git
          push = +:
          fetch = +refs/heads/*:refs/remotes/origin/*
      [remote "personal"]
          url = ssh://mtborn@mattborn.net/~/raplets.git
          push = +:
          fetch = +refs/heads/*:refs/remotes/mirror/*
      [remote "origin"]
          # Push as equally authoritative
          url = git@github.com:mattborn/raplets.git
          url = ssh://mtborn@mattborn.net/~/raplets.git
          push = +:
          fetch = +refs/heads/*:refs/remotes/origin/*
      

      我认为这不一定是个好主意……但我已经做到了。

      【讨论】:

      • 我也试过这个,但我不太喜欢它。当然,它可以工作,但您仍然需要将额外的遥控器添加到所有本地存储库中。就我而言,我将它用于多个项目中正在使用(和开发)的组件。因此,除了运行 git-clone 之外,我还必须每次都通过 git-remote 设置。
      【解决方案3】:

      如果您使用 codebasehq,您可以设置一个镜像存储库,当您更新原始存储库时,该镜像存储库将更新另一个存储库。或者,正如 Borealid 在他的回答中所说,您可以设置一个同步两个存储库的定期任务。

      【讨论】:

        猜你喜欢
        • 2023-01-23
        • 2019-10-11
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多