Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Git中查找所有依赖项提交 简介_Git_Rebase_Hotfix - Fatal编程技术网

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

在Git中查找所有依赖项提交 简介,git,rebase,hotfix,Git,Rebase,Hotfix,我使用Git来控制交付到生产环境的修补程序 当开发团队想要向生产交付一些更改时,他们会创建一个称为修补程序的文件包,并发送给生产团队。热修复程序由其ID表示,例如HF1、HF2、…、HF6 生产团队负责审查每个修补程序并确认它们是否部署到生产环境中,我们正在尝试使用git跟踪这些修补程序的状态,假设我们的git历史记录如下 O-HF1-HF2-HF3 (production) \-HF4-HF5-HF6-HF7-HF8-HF9 (delivery) 其中,生产分支机构拥有

我使用Git来控制交付到生产环境的修补程序

当开发团队想要向生产交付一些更改时,他们会创建一个称为修补程序的文件包,并发送给生产团队。热修复程序由其ID表示,例如
HF1、HF2、…、HF6

生产团队负责审查每个修补程序并确认它们是否部署到生产环境中,我们正在尝试使用git跟踪这些修补程序的状态,假设我们的git历史记录如下

O-HF1-HF2-HF3 (production)
           \-HF4-HF5-HF6-HF7-HF8-HF9 (delivery)
其中,
生产
分支机构拥有所有已确认为生产的修补程序,
交付
分支机构拥有开发团队交付但未确认为生产的其余修补程序

现在假设HF8有一个作为
SomeJavaClass.class
交付的更改,我们迫切需要将这个修补程序部署到生产环境中,而我们还没有完成对HF4-HF7的审查。我们将做如下工作

  • 使用git rebase-i HF3并对交付分支重新排序,使HF8成为HF3旁边的第一个项目

  • 通常,这会导致冲突,因为HF4-HF7中的某些文件具有HF8所依赖的更改。我们必须找到所有这些修补程序,并一起重新设置它们的基础。例如,假设HF5和HF7在
    SomeJavaClass.class
    中也发生了变化,因此是HF8的依赖项,我们会将历史重设为

    O-HF1-HF2-HF3 (production)
               \-HF5-HF7-HF8-HF4-HF6-HF9 (delivery)
    
  • 将生产部门合并到HF8

    O-HF1-HF2-HF3-HF5-HF7-HF8 (production)
                           \-HF4-HF6-HF9 (delivery)
    
  • 问题 是否有一个git命令可以帮助我在执行重基之前找到HF4-HF7之间的所有热修复程序,这些热修复程序是HF8的依赖项?


    注:我的目的是开发一个shell脚本,以HFX作为输入,在
    delivery
    分支到
    production
    分支中重新设置和合并HFX及其所有依赖项修补程序。

    检查此工具是否满足您的需要:请注意,任何此类工具只能查找不存在提交将导致冲突(或类似冲突)的依赖项。如果将一次提交中的函数更改为返回2而不是1,并且此更改是另一次提交正常运行所必需的,那么仅分析git存储库中潜在冲突的工具将无法发现此依赖关系,因为不可能这样做,但cherrypicking在不同版本之间存在一个普遍的问题。另一件事是,如果有一些大的重写发生在HF8中更改的代码上,它也会被发布,这可能是不希望的。因此,我宁愿不自动使用它,而是作为手动选择提交到cherry pick的助手。