代码之家  ›  专栏  ›  技术社区  ›  Hans

了解git cherry pick

git
  •  9
  • Hans  · 技术社区  · 14 年前

    从概念上讲,这在git中似乎是不可能的(或者是必要的);是否是结构化的暂存和分组提交允许樱桃采摘?所以,我可能会改变网站的一个特定区域,并将其作为一个组来提交,而不是像我那样使用svn,然后进行一天的工作,并在一次提交整个批中的所有文件?

    1 回复  |  直到 14 年前
        1
  •  10
  •   Cascabel    14 年前

    在这种情况下,您可能要做的是为热修复创建一个新分支,从所有需要修复的分支的共同祖先分支出来。例如,假设您在当前的开发中有几个维护版本:

    - X - o - o - o - o - o - o - o - o - o (master)
       \                       \
        o - o - o (release A)   o - o (release B)
    

    如果您需要制作一个适用于这两个版本的修补程序,请从标记为X的commit开始创建一个分支。提交修复,然后将该分支合并到所有三个分支中。

    你可以随意挑选,但有一条关于何时挑选的经验法则:不要。你唯一想挑的情况就是你把树枝管理得不好。在本例中,这可能意味着您在master上进行了修复,而不是将其从较早的点正确分支,并且人们已经将更新拉到master上,因此您无法更改它。你得仔细挑选才能把它放在两个发布分支上。但当然,你应该在第一时间管理好你的分支机构,而且你永远不需要挑剔(是的,有时还会发生;这就是生活。)