c++ - 如何在外部服务器上构建我的本地 git 仓库?

标签 c++ git compilation

在我们公司,我们拥有非常强大的基于 Linux 的构建服务器(双 Xeon,40 核),而不是那么强大的 win7 笔记本电脑。我们用 C/C++ 语言为深奥的 CPU 构建我们的产品。编译器只存在于 Linux 中。我可以使用 Qt Creator 编辑我的 git repo。它正在工作,而且速度非常快。但我无法在我们的笔记本电脑上构建源代码。我们有一个主 git 存储库,我可以将相同的存储库克隆到我的笔记本电脑和我们的构建服务器。我想实现这一点,当我按下构建按钮时,我的代码神奇地构建在构建服务器上。我做了一个概念验证解决方案,其中我的构建脚本在我的 repo 上执行 git diff 并将其 scp 到构建服务器,而不是 ssh 构建服务器在服务器 repo 上应用该 diff 而不是开始并等待编译。但该解决方案并不是那么简单。我认为存在更好的方法/方法。那么如何在外部服务器上构建我的 git 存储库呢?

最佳答案

如果你能推送到 bare repo 在构建服务器上,然后您可以将 post-receive hook 关联到该裸仓库(.git/hooks/post-receive) 这将:

  • 检查代码

    #!/bin/sh
    git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
    
  • 触发编译。

这样,您就不必自己处理差异。
您只需将构建按钮关联到将您的分支推送到构建服务器的裸仓库的操作,接收后 Hook 将完成剩下的工作。

关于c++ - 如何在外部服务器上构建我的本地 git 仓库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29019726/

相关文章:

linux - 构建和使用 Qt Embedded 的经验

java - 使用maven编译时如何忽略.java文件?

c++ - 使用 gcc 的线程清理器在启动时会产生各种错误

c++ - 有符号-无符号加法行为异常

c++ - CUDA 中从 float* 到 float3* 的转换安全吗?

c++ - 使用 SuperpoweredDecoder 获取 channel 数

ruby - 无法将提交推送到 heroku

c# - 为什么 C# 编译器不能通过 switch 语句跟踪所有代码路径

java - 将 Java 项目直接放在源代码存储库下是最佳做法吗

git - 如何使用文件然后 pull 请求自动创建新分支?