繁体   English   中英

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

[英]How can I implement this Git testing workflow

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

A-B-C-D-E (master)
         \
          F-G (local_testing)

提交FG使本地测试更容易。 现在添加一个功能并确保它正常工作我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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM