在Git中查找所有依赖项提交

时间:2017-04-01 21:23:28

标签: git rebase hotfix

简介

我正在使用Git来控制交付给生产的修补程序。

当开发团队想要对生产进行一些更改时,他们会创建一个称为修补程序的文件包,然后发送给生产团队。修补程序由其ID标识,例如HF1, HF2, ..., HF6

生产团队负责审核每个修补程序并确认它们在生产中进行部署,我们正在尝试使用git来跟踪这些修补程序的状态,假设我们的git历史记录就像

O-HF1-HF2-HF3 (production)
           \-HF4-HF5-HF6-HF7-HF8-HF9 (delivery)

其中production分支具有已确认为生产的所有修补程序,delivery分支具有开发团队提供的其余修补程序但未确认生产。

现在假设HF8的更改已发送为SomeJavaClass.class,我们迫切需要将此修补程序部署到生产环境,而我们还没有完成对HF4-HF7的审核。我们会这样做

  1. 使用git rebase -i HF3并重新排序传递分支,以便HF8成为HF3旁边的第一个项目

  2. 通常这会导致冲突,因为HF4-HF7中会有一些文件有HF8所依赖的变化。我们必须找到所有这些修补程序并将它们重新组合在一起。对于exameple,假设HF5和HF7在SomeJavaClass.class中也有变化,因此是HF8的依赖关系,我们会将历史改为

    O-HF1-HF2-HF3 (production)
               \-HF5-HF7-HF8-HF4-HF6-HF9 (delivery)
    
  3. production分支合并到HF8

    O-HF1-HF2-HF3-HF5-HF7-HF8 (production)
                           \-HF4-HF6-HF9 (delivery)
    
  4. 问题

    是否有一个git命令可以帮助我在执行rebase之前找到HF4-HF7之间的所有修补程序,这是HF8的依赖?

    注意:我的目的是开发一个shell脚本,在给定HFX作为输入的情况下,执行rebase并将HFX及其所有依赖修补程序合并到delivery分支到production分支。

0 个答案:

没有答案