在我的主分支中,我做了一个git merge some-other-branch本地,但从未将更改推送到原始主.我不是故意合并,所以我想撤消它.在git status合并后执行操作时,我收到此消息:
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
Run Code Online (Sandbox Code Playgroud)
git revert HEAD -m 1
Run Code Online (Sandbox Code Playgroud)
但现在我收到这条消息git status:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
Run Code Online (Sandbox Code Playgroud)
我不希望我的分支通过任何数量的提交领先.我该如何回到那一点?
我正在学习git-flow,我刚刚做了git flow feature finish <feature-name>,它合并了我的功能分支来开发和删除它.
而不是这个,我想将功能分支推送到github,所以我可以在同行评审后合并它.
所以问题是,如何"撤消"这个命令.或者换句话说,如何将我的最后两次提交从开发移动到我的功能分支?
\n\n\n当完成的功能和修复已准备好发布时,它们会合并回开发分支
\n
据我了解,这意味着当开发人员对自己的工作充满信心时,功能就会被合并以进行开发。
\n\n\n\n\n当需要发布版本时,会从开发中创建发布分支
\n
在这条线上,开发分支中的功能预计将被发布。
\n\n以上一切都很好,直到某个功能被 QA 测试确定尚未“准备好”发布,或者可能快到了该功能可以移至下一个版本的发布日期。
\n\n我知道做一个git revert可以对此有所帮助。我碰巧很久以前就经历过这种情况(不过我已经忘记了那段时间我做了什么),但我一直在使用实验性的自定义工作流程来防止类似的情况发生。
实验性自定义工作流程Worlflow 1
\n\n我正在试验的流程几乎与 gitflow 相同,除了“功能合并以开发”部分之外。在此实验工作流程中,它被替换为“合并待开发的已验证功能”
\n\n流程变成这样:
\n\n它对我来说工作正常,但有一个小问题。它会在每次变基时创建重复的提交。我已经尝试过cherry-pick,merge(与 ff),但pull --rebase结果都是相同的。
我计划测试另一种方法,以避免每次变基时重复提交,但我认为它还会存在另一组问题。
\n\n和上面的工作流程几乎一样
\n\n工作流程2
\n\n所有要发布或由 QA 测试的功能都合并 …