Git推送到一个远程repo,该远程repo部署到多个其他远程存储库
我们正在学习Git,只希望推送到我们的主要Git服务器(Git.example.com)。它必须(基于repo)部署到其他服务器,比如我们的开发Web服务器(dev.example.com)和Redmine(Redmine.example.com)项目管理服务器 我们知道,这可以通过在工作站上的:Git推送到一个远程repo,该远程repo部署到多个其他远程存储库,git,Git,我们正在学习Git,只希望推送到我们的主要Git服务器(Git.example.com)。它必须(基于repo)部署到其他服务器,比如我们的开发Web服务器(dev.example.com)和Redmine(Redmine.example.com)项目管理服务器 我们知道,这可以通过在工作站上的:.git/config中进行小配置来实现,例如: [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url =
.git/config
中进行小配置来实现,例如:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://git.example.com/testing.git
# Development server only needs to serve the files.
url = https://dev.example.com/testing.git
# Redmine must be a bare one.
url = https://redmine.example.com/testing.git
我们对上述解决方案的意见。首先,这将消耗额外的带宽/上传。其次,我们不喜欢必须在客户端配置:.git/config
。是否至少在git.example.com上配置此功能
对于任何有同样问题的人来说,这个网站确实帮助了我们很多:。您可以在该页底部找到的小片段:
根据您的需要,您可能需要调整此过程
一点假设您只想将更改推送到临时服务器
从git.example.com上的裸存储库中,而不是从您的家中
直接使用计算机。您可以通过更改remote.staging.push来实现这一点
要读取的配置选项
refs/remotes/origin/master:refs/heads/master
代替
refs/heads/master:refs/heads/master
。如果您有,这可能会很有用
需要能够推送到临时服务器的多个开发人员
我们并不完全理解这种可能的解决方案。但听起来这可能是解决我们问题的办法。我们也在阅读Git文档,并将随时向大家发布
非常感谢您的帮助。提前感谢。您可以使用服务器端钩子脚本完成此操作。在这种情况下,您需要添加到post-receive钩子,该钩子在更新被接受并应用到服务器存储库并且所有操作都完成后运行。我使用这个钩子,通过将所有补丁重新应用到另一个repo,将git-tfs存储库镜像到具有更多历史记录的适当git存储库中。出于您的目的,只需为每个目标调用
git push--mirror
就足够了。或者,您可以在服务器上运行cron作业,定期执行相同的操作
示例post-receive-email-hook脚本展示了将目标存储库存储为配置变量,并在继续之前检查存储库是否处于合理状态的方法。钩子脚本的任何输出都可以显示给推送用户,这有助于防止由于任何原因失败
最简单的方法就是添加一些
git-push--mirror1;git push——将redmine
行镜像到服务器hook/post receive脚本,我认为。我们仍在努力改进我们的目标。看起来此页面将帮助我们解决以下问题: