我该如何实现这个Git测试工作流程

时间:2017-10-22 19:07:48

标签: git

我有一些功能已添加到显示诊断信息的产品中。因为这些信息不应该在生产中显示,所以分支是在master之上的一些提交。

x <- xs

提交A-B-C-D-E (master) \ F-G (local_testing) F使本地测试变得更加容易。现在,要添加一项功能并确保其正常运行,我会根据G检查一个新分支new_feature

local_testing

提交git checkout -b new_feature local_testing # Do work git commit -a -m "H" 会添加所需的功能。

H

我一直在交互式地重新定位以在提交A-B-C-D-E (master) \ F-G (local_testing) \ H (new_feature) 之前移动提交H。然后我进行硬重置以将F指向的提交对象移动到新的new_feature

H'

因此提交历史记录如下:

git rebase -i master
git reset --hard H

然后我快进A-B-C-D-E (master) \ H' (new_feature) \ F'-G' (local_testing) master并删除new_feature

new_feature

这感觉有点笨重(特别是硬重置)。有没有更好的方法来实现这个流程?

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用git cherry-pick。您可以从分支主机直接应用提交H。

git cherry-pick <H>

如果您有多个新提交,则可以使用git rebase压缩它们。您还可以多次使用git cherry-pick命令。