5

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

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

也许是这样的(?):

  • 新的提交将在master.
  • 一个功能在多次提交后完成。
  • 然后ci分支在master.
  • ci分支已签出。
  • 最近的提交(尚未推送到任何服务器)被压缩以向客户端隐藏不必要的历史记录。
  • ci分支被推送到构建服务器。
  • ...

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

4

2 回答 2

6

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

  • 正常工作master(或使用任何其他功能分支模型)。
  • 每次你完成一个特性并想要将它推送到 CI 系统时,你:

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

那里有许多分支模型,但这应该足够简单,并且可以满足您的需求。

我希望这有帮助。

于 2012-07-10T20:00:22.973 回答
0

我会看看诸如http://nvie.com/posts/a-successful-git-branching-model/之类的东西

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

于 2012-07-10T19:51:06.187 回答