考虑为开发和生产环境使用单独的设置文件
cherry-pick通常是仅将特定提交合并到开发线中的最佳和最简单的选择。如果您必须不断地cherry-pick从您的开发分支提交到master/release 分支,而不是使用通常的merge命令,只是为了避免覆盖设置文件,您可能需要考虑让一些生成的设置文件的生产、部署版本部署期间的脚本类型,和/或为您的开发和生产环境提供单独的设置文件,例如dev.settings和production.settings.
替代品cherry-pick
您也可以cherry-pick通过使用rebase --onto或使用补丁来实现与 a 相同的效果,但rebase --onto如果您只是尝试选择单个提交,使用可能会更麻烦,并且使用补丁需要更多步骤。
rebasevscherry-pick选择一个提交
举个例子来说明rebase --onto有时 vs.有多麻烦,假设你在一个分支cherry-pick上有以下提交:develop
develop
A <- B <- C <- D
假设您只想合并C到您的master分支中。使用cherry-pick,您只需使用它(在 上时master)
git cherry-pick C
然而,要选择一个提交rebase --onto,你需要去
git rebase --onto master B C
有了上面的内容,您是说您想使用 的当前位置master作为新的基础提交/父级C,并且B是旧的基础/父级。
rebasevscherry-pick选择一系列提交
但是,在两个命令之间选择一系列提交变得非常相似。例如,假设您要合并B和C。然后
git cherry-pick A..C
git rebase --onto master A C
是等价的,虽然cherry-pick需要在master签出时完成,但rebase --onto不会,因为它会master为您签出。
使用补丁
如果您想了解使用补丁需要做多少工作,您可以在Pro Git 书籍中阅读有关使用它们的信息。