【问题标题】:Synchronize remote repositories同步远程存储库
【发布时间】:2013-03-07 00:25:47
【问题描述】:

我希望将多个遥控器与 git 存储库的裸副本同步,这样如果开发人员在一个遥控器上添加或更新分支,这些更改也会影响到其他遥控器。举个例子:

开发者 A 将新分支“test-dev”推送到它们的原点。开发人员 B(我)从我的“本地”远程获取与开发人员 A 的来源相对应的所有内容,并且 git 通知我新的 test-dev 分支。要手动将 test-dev 推送到我的“网络”远程,我可以签出分支然后推送它,或者我可以在调用 git 时传递一个 refspec:

git push network local/test-dev:refs/heads/test-dev

现在,当有人从我称之为“网络”的远程拉/取/克隆时,test-dev 分支就会出现。一个小时后,开发人员 A 将一些重要的更改推送到 test-dev。然后,我可以获取并合并(或仅提取)更改,然后以与以前相同的方式将更新的更改推送到网络,方法是签出更改或使用 refspec。

有没有办法自动化这个过程?一旦出现新分支或对现有分支进行更改,我希望有一些简单的命令从指定的远程获取此新信息,然后再使用第二个命令将其推送到我的所有其他远程。如果必须编写脚本,那就这样吧,但我希望有一些参数可以传递给我只是没有看到的现有 git 命令。

【问题讨论】:

    标签: git version-control git-remote


    【解决方案1】:

    有没有办法自动化这个过程?

    是的,它是 Git 的一个功能,称为 hooks

    您应该阅读此处链接的页面以了解它们,我会告诉您,您想在服务器上实现post-receive 挂钩,以用作其他人的规范参考。如果人们可以推送到多个服务器,那么您也需要在这些服务器上实现挂钩。

    【讨论】:

    • 啊,愚蠢的时刻。我以前用过一两次钩子,所以我不知道为什么我没有想到这一点。我必须确保为此设置了单独的 ssh 密钥,但这应该可以正常工作。谢谢!
    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2014-07-05
    • 1970-01-01
    相关资源
    最近更新 更多