当您从错误的分支分支出来并进行不必要的提交时该怎么办?

时间:2017-05-24 21:01:00

标签: git github

我犯了一个错误,当我想分支出一个功能时,我忘了更改为dev分支并从那里创建一个新的分支...而是在另一个功能分支内部创建了一个新的分支。

我只是推动了我刚刚完成的功能分支,并且在执行拉取请求时意识到有来自另一个功能分支(我创建分支的那个)的提交。

在这种情况下我该怎么办,因为我现在有一个分支,在git hub上有一个来自另一个功能分支的提交加载?我可以删除它们或者对我来说最好的解决方案是什么?我不是专家,所以我可能需要帮助我可能需要运行的命令。

感谢。

2 个答案:

答案 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