如何实施Git测试工作流程

3

我有一些功能被添加到了一个产品中,这些功能可以显示诊断信息。由于这些信息不应该在生产环境中被公开,所以该分支比主分支多了几个提交。

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

提交记录 FG 使本地测试变得更加容易。现在,为了添加一个新功能并确保其正常工作,我会基于 local_testing 分支检出一个名为 new_feature 的新分支。

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

git checkout master
git merge new_feature
git branch -d new_feature

这个实现方式有些笨重(特别是硬重置)。有更好的方法来实现这个流程吗?

1个回答

1

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

git cherry-pick <H>

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

{btsdaf} - jackdbd
这并不模拟问题中描述的过程。重要的是,您仍然需要删除local_testing上的新提交,然后将local_testing分支重新基于新的主分支进行变基。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接