[英]How can I implement this Git testing workflow
我有一些功能被添加到产品中,以显示诊断信息。 因为这些信息不应该在生产中显示,所以分支是在master之上的一些提交。
A-B-C-D-E (master)
\
F-G (local_testing)
提交F
和G
使本地测试更容易。 现在添加一个功能并确保它正常工作我new_feature
根据local_testing
检查一个新的分支new_feature
。
git checkout -b new_feature local_testing
# Do work
git commit -a -m "H"
Commit H
添加了所需的功能。
A-B-C-D-E (master)
\
F-G (local_testing)
\
H (new_feature)
我一直在交互式地重新定位以在提交F
之前移动提交H
然后我进行硬重置以将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
。
git checkout master
git merge new_feature
git branch -d new_feature
这感觉有点笨重(特别是硬重置)。 有没有更好的方法来实现这个流程?
一种解决方案是使用git cherry-pick 。 您可以从分支主机直接应用提交H.
git cherry-pick <H>
如果你有多个新提交,你可以用git rebase压缩它们。 你也可以多次使用git cherry-pick
命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.