跨多个实时服务器的 Git 复制

标签 git http ssh

我有一个关于跨多个实时 http 服务器的 git 存储库复制的问题

我的目标是创建从我的测试服务器到实时 http 服务器的复制。所以当我在测试中提交我的更改时,更改也应该自动出现在服务器上 我查看了 gerrit2,它看起来不错,但我尝试用 git 来做,但是由于 git 使用提交后 Hook ,我确信我可以用它来做

所以我尝试在提交后在 Hook 中进行多次推送(因为覆盖似乎是唯一的选择,因为如果我 merge ,就有可能发生冲突,而我最不想在我的实时服务器上拥有的东西是乱七八糟的文件.. .) 从测试到上线,首先我遇到了一些奇怪的错误,但后来我添加了 force 参数并成功推送,但不幸的是,更改没有出现在远程服务器上。 我正在使用 ssh 协议(protocol)交换数据。

如何做到才好又靠谱?我必须执行的命令集是什么?

最佳答案

正如@Jefromi 指出的那样,推送不是一个好主意。

相反,您可以尝试使用定期运行的脚本(例如每小时或 5 分钟的倍数)从生产服务器中提取数据。这样您就可以知道服务器何时更新。

但是如果您在服务器上进行任何修改, pull 可能会失败,因为它会拒绝更新修改后的文件。您可以编写脚本在执行 pull 之前检查工作副本是否脏,然后发送电子邮件让人查看服务器。

关于跨多个实时服务器的 Git 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605322/

相关文章:

git - 如何将 1 个特定提交复制到另一个分支?

eclipse - 如何将移动的 git 存储库与其在 Egit 中的原始项目重新连接?

http - 在 HTTP 路由器中将未知的 URL 路径设置为错误

ssh - Gitlab API 添加 SSH-key

git fetch 后的 Git 日志

javascript - angularjs $httpProvider 拦截器文档

javascript - Express.js - 获取实际发布请求的正文 JSON

ssh - 连接到 ssh 远程主机(在 vpn 网络中)超时

ssh:检查隧道是否处于事件状态

c# - 为什么从 C# 代码中获取 Git 不起作用