同步远程存储库

时间:2013-03-18 15:34:09

标签: git version-control git-remote

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

开发人员A将新分支“test-dev”推送到他们的原点。开发人员B(我)从我的“本地”遥控器中获取对应于dev 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命令。

1 个答案:

答案 0 :(得分:1)

  

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

是的,这是Git的一个名为hooks的功能。

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