使用分离的分支进行部署

时间:2012-07-10 19:43:42

标签: git github continuous-integration

我即将为客户设置并自动构建环境。我想将Git存储库推送到客户端的构建服务器,但没有完整的Git历史记录。

我正在考虑使用git checkout --orphan ci的方法,但我不清楚如何使用这样的分支设置每天工作。

也许是这样的事情(?):

  • 将在master
  • 上创建新提交
  • 一项功能在多次提交后完成。
  • 然后在ci上对master分支进行重新定位/合并(快进)。
  • ci分支已签出。
  • 最近的提交(尚未推送到任何服务器)被压缩以隐藏客户端不必要的历史记录。
  • ci分支被推送到构建服务器。
  • ...

这是一种有效的方法和/或是否存在更简单的方法?

2 个答案:

答案 0 :(得分:6)

管理此问题的一种简单方法可能是:

  • master上正常工作(或使用任何其他功能分支模型)。
  • 每次完成功能并希望将其推送到CI系统时,您:

    • git checkout ci
    • git merge --squash master这会将master中的所有更改带到您的ci分支。
    • git commit您将拥有一个预先填充的提交消息,其中包含所有压缩的提交消息。然后,您可以编辑此消息以反映该功能中的所有更改。
    • git push origin ci将更改发送到CI系统。

有许多分支模型,但这应该足够简单,并为您提供您想要的。

我希望这会有所帮助。

答案 1 :(得分:0)

我会看一些像http://nvie.com/posts/a-successful-git-branching-model/

这样的内容

至于CI,你可能最终会得到克隆/签出的整个分支,但除非你输入一堆大的二进制文件,否则我不会太担心它。