我有一个关于樱桃采摘的问题。我们有一个有两个主要分支的项目:部署和开发(这是一个简化但准确的视图)。部署是我们已经部署到我们的生产服务器的东西,而开发是我们正在处理的东西(对于个别功能/修复/等,开发的功能分支)。
我们有一个提交从功能分支合并到开发中(通过来自单个开发人员分支的 GitHub 拉取请求),我们需要将其推送到生产中。在开发中还有其他一些我们还不想部署到部署中的提交,所以我做了一个git checkout deploy && git cherry-pick 049cae3 && git push
获取我们需要的一个提交。一切正常,代码被推送到生产环境。但是,我们有一个状态仪表板,它使用 GitHub API 对 deploy..develop 进行比较,以查看我们在 develop 上堆积了多少未在 deploy 上的提交。我注意到这个数字没有改变,当我查看 github 上的比较页面时,我的cherry-pick'd 提交仍然出现在差异中。我猜这是因为cherry-pick 将提交与新的 SHA 一起应用,因此 GitHub 不会将其视为在两个分支中——它们是两个不同的提交。
这可能没什么大不了的,因为在某些时候我们会将开发合并到部署中,但是我可能会有重复的提交,对吧?(是的,我们正在合并,rebase 让我害怕,我还没有真正弄清楚)。
所以:考虑到我需要一个特定提交的情况,选择樱桃是正确的方法吗?如果不是,那是什么?