我们已经为我们的最新版本创建了一个发行分支。同时,我们继续在master上开发新功能。
我们一直在release分支上进行错误修复。通常,我们基于发布分支创建一个主题分支,修复该主题分支上的错误,并在完成后将其合并到发布分支。
此后,我们从发布分支中挑选合并提交到master。
现在要解决的问题:我们已修复了许多错误,并且开始难以确定它们是否全部被挑选。有没有办法验证master分支中还包括release分支上的所有修补程序?
答案 0 :(得分:3)
如果您从一个分支中挑选一个补丁到另一个分支,它将获得不同的提交哈希,因此您不能依赖它。
建议您在提交消息的开头使用自己的密钥(例如,“ Bug-12345修复SomeComponent中的内存泄漏”)。然后,您可以从每个分支中提取错误修复列表,例如:
$ git log --oneline <branchname> | grep '^Bug-' | sort
然后比较两者。
答案 1 :(得分:0)
经过进一步调查,我在一个我不知道存在的git命令中找到了问题的答案。
git cherry
完成了任务。 The docs说:“等效测试基于差异,删除空白和行号之后。”这可能非常有用。
要检查master中与发布分支是否存在相同的提交,可以运行以下命令:
$ git cherry master <your_release_branch>