git cherry pick,merge,rebase或其他,具有长期分支/主题

时间:2014-03-21 21:23:46

标签: git

在SO中已经有很多很好的建议来思考樱桃采摘(在这里使用这个术语:不是实际命令本身),但到目前为止我所读到的所有内容似乎都假设分支/提交即将到来的主题将立即死亡。 rebase路线似乎要求你放弃分支。在其他方法的解释中,在响应的结构暗示了在动作之后丢弃分支。但没有明确说明它。

one-liner:我有一个需要在主题分支完成之前投入生产的修复程序;同样的修复也需要在分支机构中进行可行的工作。

这适用于生产和测试(或其他)分支长期共存的情况。

2 个答案:

答案 0 :(得分:1)

我会将该修补程序应用于主题分支分支的分支,并将基础合并到主题分支/ rebase主题分支,而不是从主题分支中挑选它。这使得更清楚的是提交不是特定于那个分支,而是在分支上工作时发现的通用修复。

答案 1 :(得分:1)

为了使这个具体化,我们假设我们有一个带有生产代码的主分支和您希望随时掌握的工作分支。您工作分支上的一个提交是需要应用的热修复。主分支仅反映远程原点/主站的状态,直到您准备推送更改为止。

你使用master来让你的master更新,然后根据master将你的修补程序移动到你的提交列表的开头来重新设置你的工作分支。

git checkout master
git pull
git checkout work
git rebase -i master

然后你可以去掌握并选择修补程序提交并推送它。

git cherry-pick *commit*
git push

这里真正有用的是主分支是干净的,并且始终代表远程原始主数据的最新更新版本。