从分支中删除提交

时间:2020-08-10 07:35:16

标签: git github branch git-branch branching-and-merging

我正在研究一个使用gh-pages来部署网站的React项目。我不小心将master分支与gh-pages分支合并,并将master上的所有更改都带到gh-pages。总共,它向我的gh-pages分支添加了24次以前没有的提交。

我想知道是否有一种方法可以还原这些更改并使我的gh-pages分支回到最初的6个提交?

如果可能的话,是否有办法从GitHub上删除gh-pages分支上的那24个额外提交?

我查看了与git reset --hardgit rebase相关的资源,但不确定它们是否可以解决我的问题。我不想破坏这个项目的git结构,而不是已经破坏了。

1 个答案:

答案 0 :(得分:0)

最安全的做法是git revert对您偶然做出的合并提交。通过执行git revert,应注意,您正在添加 new 提交,该提交从功能上撤消了您偶然进行的master的合并提交。这是操作方法:

# from gh-pages
git log

# find the SHA-a of the merge commit, and then do
git revert -m 1 <merge commit hash>

请注意,您可能想在这里使用-m 1,它告诉Git恢复为第一个父对象,通常是您的gh-pages功能分支。

请注意,在此处执行还原提交比尝试剪切合并提交更可取。这样做的原因是,实际上删除合并提交意味着重写历史记录,这会对使用您的gh-pages分支的其他人造成麻烦。