Git Git 如何实现两个仓库之间进行同步

yutian · 2014年09月01日 · 最后由 yutian 回复于 2014年09月03日 · 29556 次阅读

如题:一个项目分别提交到两台不同的服务器上,如何实现两个仓库之间的同步? 比如 A 仓库项目克隆地址:[email protected]/user/a.git B 仓库项目克隆地址:[email protected] /user/a.git 怎么设置才能实现项目提交后两个仓库之间能够自动同步

是要实现一条 git push 命令同时把 change 推送到两个 repo 吗?

#1 楼 @loveky 不是同时 push 到两个 repo 中 是提交到任意一个 repo 中,这个 repo 和另外一个同步 不知 git 仓库是否支持这种操作

自己写个一个钩子就可以了 http://git-scm.com/book/en/Customizing-Git-Git-Hooks

不过我觉得最好还是同时 push 到两个服务器比较好

[remote "xxxxx"]
        url = [email protected]:111111/abc.git
        url = [email protected]:222222/abc.git

#3 楼 @Peter 谢谢回答 了解过在服务器端 hooks 目录写钩子实现,升级到了最新的 git 好像默认没有 post-receive 这个钩子,另外,想如何在钩子里面实现克隆出代码推送到新的服务器地址

其实我是想实现代码提交后项目自动部署到测试机的(以前通过钩子实现了),现在升级了 Gitlab7.2,安装起来方便了但是 ruby 的环境变量找不到,考虑通过把代码推送到另外的有 rvm 环境的机器,让另一个库的钩子实现自动部署。

使用 sync 同步两个版本库可以不?

#5 楼 @moyuanming 不考虑代码合并的话是个不错的注意,不过这个命令不是我想要的,想通过 push 之类的命令触发 hooks 下的 post-receive

需要 登录 后方可回复, 如果你还没有账号请 注册新账号