我有一些功能被添加到了一个产品中,这些功能可以显示诊断信息。由于这些信息不应该在生产环境中被公开,所以该分支比主分支多了几个提交。
A-B-C-D-E (master)
\
F-G (local_testing)
提交记录 F
和 G
使本地测试变得更加容易。现在,为了添加一个新功能并确保其正常工作,我会基于 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
这个实现方式有些笨重(特别是硬重置)。有更好的方法来实现这个流程吗?
local_testing
上的新提交,然后将local_testing
分支重新基于新的主分支进行变基。 - Alex