项目源有多个条件,过去只用于测试许多不同的场景,但这种逻辑绝不会滑落到代码的生产就绪状态(这是要求)。
因此,当我需要开发新的“功能”时,我会采用“生产”,在其上应用“测试”更改,通过输入新逻辑来实现“功能”,当测试通过(一些自动,一些手动)时,删除“测试”更改,然后将“功能”提交到“生产”。
是否有任何 Git 实践可以帮助实现这一点?
我尝试过的所有方法:worktree
,,git merge --no-commit
。patch
项目源有多个条件,过去只用于测试许多不同的场景,但这种逻辑绝不会滑落到代码的生产就绪状态(这是要求)。
因此,当我需要开发新的“功能”时,我会采用“生产”,在其上应用“测试”更改,通过输入新逻辑来实现“功能”,当测试通过(一些自动,一些手动)时,删除“测试”更改,然后将“功能”提交到“生产”。
是否有任何 Git 实践可以帮助实现这一点?
我尝试过的所有方法:worktree
,,git merge --no-commit
。patch
我不太确定我是否正确理解了你的问题。但如果我理解了,你应该能够利用
git rebase
这一点。因此,如果我理解正确的话,您想要跟踪一些测试代码,而这些代码永远不应包含在用于生产的分支中。在开发新功能时,您需要该代码存在,但在将新功能合并到生产分支时,它不应包含(提交的)测试代码。
为此,您需要三个分支:
production
持有要部署到生产中的代码tests
production
由与附加测试代码相同的代码组成feature
production
由++tests
个新功能的新提交组成一开始,这些分支可以简单地相互叠加:
其中提交 T1-T3 引入了您不想参与的测试代码
production
。当启动新的功能分支时,feature1
它首先与 相同tests
,然后将新功能的提交 F1-F3 添加到其中。完成开发后,您现在可以将 的提交重新置于 之上
frature1
,请参阅:tests
production
git rebase --onto
这将导致
现在你可以合并/快进
production
到feature1
这将导致
feature1
因此现在您拥有包含的所有新功能提交production
,但提交 T1-T3 仍在其自己的分支中。feature2
对于下一个功能,您可以再次使用新分支执行相同操作tests
。但首先您需要包含新功能提交,tests
您可以在其中使用git rebase
tests
onproduction
或执行git merge prodcution
:这将导致
或者
这将导致