我要为客户设置自动构建环境。我想将 Git 存储库推送到客户端的构建服务器,但没有完整的 Git 历史记录。
我正在考虑使用 git checkout --orphan ci
的方法,但我不清楚如何使用这样的分支设置进行日常工作。
也许是这样的(?):
- 新提交将在
master
上创建。 - 一项功能在多次提交后完成。
ci
分支然后在master
上重新建立/merge (快进)。ci
分支已 check out 。- 最近的提交(尚未推送到任何服务器)被压缩以向客户端 stash 不必要的历史记录。
ci
分支被推送到构建服务器。- ...
这是一种有效的方法和/或是否存在更简单的方法?
最佳答案
一种简单的管理方法是:
- 在
master
上正常工作(或使用任何其他功能分支模型)。 每当您完成一项功能并想将其推送到 CI 系统时,您:
git checkout ci
git merge --squash master
这会将master
中的所有更改带到您的ci
分支。git commit
您将拥有一个预填充的提交消息,其中包含所有压缩的提交消息。然后您可以编辑此消息以反射(reflect)该功能的所有更改。git push origin ci
将您的更改发送到 CI 系统。
那里有很多分支模型,但这应该足够简单并且可以满足您的需求。
希望对您有所帮助。
关于git - 使用分离分支进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420729/