我犯了一个错误,当我想分支出一个功能时,我忘了更改为dev分支并从那里创建一个新的分支...而是在另一个功能分支内部创建了一个新的分支。
我只是推动了我刚刚完成的功能分支,并且在执行拉取请求时意识到有来自另一个功能分支(我创建分支的那个)的提交。
在这种情况下我该怎么办,因为我现在有一个分支,在git hub上有一个来自另一个功能分支的提交加载?我可以删除它们或者对我来说最好的解决方案是什么?我不是专家,所以我可能需要帮助我可能需要运行的命令。
感谢。
答案 0 :(得分:1)
您可以使用rebase命令编辑提交树。例如,考虑到您有以下提交:
* h121j commit A
* kj13i commit B
* alk29 unwanted commit
* a4b2i commit C
你可以这样做:git rebase -i a4b2i
。它将打开一个编辑器,您将能够简单地删除提交(或标记为版本,如果您愿意)。
pick alk29 unwanted commit
pick kj13i commit B
pick h121j commit A
# Rebase a4b2i..h121j onto a0220ae (3 commands)
#
# Commands:
...
您需要做的就是删除行pick alk29 unwanted commit
。保存时,删除的提交行将从提交树中删除。
答案 1 :(得分:0)
好的....两部分:
1樱桃 - 将不需要的提交选到你真正想要的地方
2只需重置 - 将本地分支硬件保存到应该存在的位置(没有不需要的提交),然后将其强制插入远程。事实上,没有必要重置 - 本地硬。您可以通过在远程分支上提供所需的正确ID来强制推送:git push --force the-remote right-revision-id:remote-branch