在我的 git 项目中,我遵循以下流程:
我正在一个名为 mybranch 的分支上工作,推送提交,当我想制作“版本”时,我将 merge mybranch 到“develop”分支,然后切换回 mybranch 并重复相同的过程.
意外地从mybranch合并到develop后,我忘记切换分支并留在“develop”分支并将一些提交直接推送到它(我们称它们为develop-commit-1,develop-commit-2,开发-提交-3)。
然后我工作的“mybranch”位于“develop”后面,我需要这些提交(它们最初是针对这个分支的),所以我认为将开发分支合并回“mybranch”就可以了这个伎俩”(错误的决定)。
令我惊讶的是,现在我看到“develop”分支的 git 历史记录包含“mybranch”的提交,并且从 GUI 中我看到分支已经对齐(因为反之亦然,合并 git 认为它们是相同的还是什么? ).我想返回到以前的工作流程(保持干净的开发分支并仅添加来自 mybranch 的合并),因此我正在考虑将“develop”分支重置为上次将“mybranch”合并到其中的提交,然后只需将“mybranch”合并回它,就像我以前所做的那样,会起作用吗?我真的很害怕将“develop”分支重置回该提交是否会影响“mybranch”,因为它们已在它们之间合并(并且
mybranch包含这3个提交,这些提交位于我希望开发分支的提交点之后)重置,这里有什么建议吗?
如果描述不清楚,我绝对可以提供更多信息。预先感谢!
所以你想简单地重置开发并保留你的分支
mybranch
。最后,强制推动你重写的开发:
git branch -f develop "$commit_before_your_accident"
git push origin +develop:develop