如何将缺陷修复代码与功能代码分开推送到SIT分支

65次阅读
没有评论

问题描述

在使用Jenkins和GitHub进行Salesforce部署时,遇到了一个问题。他们有一个develop分支,从中创建功能分支。当合并到develop分支时,会将更改部署到第一个Salesforce沙箱中。每个迭代结束后,develop分支会与SIT分支合并,将更改推送到SIT沙箱中进行测试。问题是,他们希望在迭代结束之前,只将缺陷修复代码推送到SIT分支,而不是将迭代2的功能代码一起推送。但是,如果修复是针对Apex类或对象文件的,那么所有更改都会被部署。用户想知道如何在合并到SIT分支时将用户故事代码与迭代n-1的缺陷修复代码分开。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

使用git cherry-pick命令可以解决这个问题。如果能够将用户故事代码和修复代码分开提交,通过单独提交它们,可以使用git cherry-pick命令将相关提交合并回develop分支。
以下是使用git cherry-pick命令的步骤:
1. 确保用户故事代码和修复代码分别提交到不同的提交中。
2. 获取修复代码的提交ID。
3. 在develop分支上使用git cherry-pick命令将修复代码合并。
下面是一个示例:

# 切换到develop分支
git checkout develop
# 获取修复代码的提交ID
git log
# 使用git cherry-pick命令将修复代码合并
git cherry-pick <修复代码的提交ID>

请注意,使用git cherry-pick命令时,需要确保修复代码的提交ID是正确的,并且与develop分支保持同步。

方案2

如果使用git cherry-pick命令不方便,或者提交的文件较多,可以考虑使用其他Git流程来实现。
一种可能的方法是使用Git的分支策略,如Gitflow。Gitflow是一种流行的Git分支管理工作流,可以帮助团队更好地组织和管理代码。
以下是使用Gitflow的步骤:
1. 初始化Gitflow工作流。
2. 创建一个新的功能分支,用于开发用户故事代码。
3. 创建一个新的修复分支,用于开发缺陷修复代码。
4. 在功能分支上进行开发和提交用户故事代码。
5. 在修复分支上进行开发和提交缺陷修复代码。
6. 将修复分支合并到SIT分支,以将修复代码推送到SIT沙箱进行测试。
下面是一个示例:

# 初始化Gitflow工作流
git flow init
# 创建一个新的功能分支
git flow feature start <功能分支名称>
# 在功能分支上进行开发和提交用户故事代码
git commit -m "Add user story code"
# 创建一个新的修复分支
git flow bugfix start <修复分支名称>
# 在修复分支上进行开发和提交缺陷修复代码
git commit -m "Fix bug"
# 将修复分支合并到SIT分支
git flow bugfix finish <修复分支名称>

请注意,使用Gitflow工作流需要先安装并配置Gitflow插件。
以上是两种将缺陷修复代码与功能代码分开推送到SIT分支的方法。根据实际情况选择适合您团队的方法。

正文完