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