在Git中查找所有依赖项提交 简介
我使用Git来控制交付到生产环境的修补程序 当开发团队想要向生产交付一些更改时,他们会创建一个称为修补程序的文件包,并发送给生产团队。热修复程序由其ID表示,例如在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) 其中,生产分支机构拥有
HF1、HF2、…、HF6
生产团队负责审查每个修补程序并确认它们是否部署到生产环境中,我们正在尝试使用git跟踪这些修补程序的状态,假设我们的git历史记录如下
O-HF1-HF2-HF3 (production)
\-HF4-HF5-HF6-HF7-HF8-HF9 (delivery)
其中,生产
分支机构拥有所有已确认为生产的修补程序,交付
分支机构拥有开发团队交付但未确认为生产的其余修补程序
现在假设HF8有一个作为SomeJavaClass.class
交付的更改,我们迫切需要将这个修补程序部署到生产环境中,而我们还没有完成对HF4-HF7的审查。我们将做如下工作
SomeJavaClass.class
中也发生了变化,因此是HF8的依赖项,我们会将历史重设为
O-HF1-HF2-HF3 (production)
\-HF5-HF7-HF8-HF4-HF6-HF9 (delivery)
O-HF1-HF2-HF3-HF5-HF7-HF8 (production)
\-HF4-HF6-HF9 (delivery)
注:我的目的是开发一个shell脚本,以HFX作为输入,在
delivery
分支到production
分支中重新设置和合并HFX及其所有依赖项修补程序。检查此工具是否满足您的需要:请注意,任何此类工具只能查找不存在提交将导致冲突(或类似冲突)的依赖项。如果将一次提交中的函数更改为返回2而不是1,并且此更改是另一次提交正常运行所必需的,那么仅分析git存储库中潜在冲突的工具将无法发现此依赖关系,因为不可能这样做,但cherrypicking在不同版本之间存在一个普遍的问题。另一件事是,如果有一些大的重写发生在HF8中更改的代码上,它也会被发布,这可能是不希望的。因此,我宁愿不自动使用它,而是作为手动选择提交到cherry pick的助手。