Github - 如何恢复某人提交?

时间:2015-12-05 17:40:09

标签: git github

有人推了3个我要删除的提交,但我的意思是我不想在Github的提交历史中看到它们,因为它们的名字错了。怎么实现呢?

3 个答案:

答案 0 :(得分:1)

这取决于您的存储库的当前状态。

如果这些是最后三次提交,并且您真的想要看到它们并且#34;,您可以重置为位于这三个之前的提交:

  

git reset --hard HEAD~3

然后使用 - 强制 推送

通常,如果您想还原提交,则应使用 git revert 。例如:

  

git revert git revert HEAD~< 2> .. HEAD

这会创建一个提交,从最后三次提交中删除更改。

答案 1 :(得分:1)

假设三个提交是最近提交的三个提交,那么第一个有用的是您想要恢复的父提交的总和。例如:6b1d1ca。您可以在GitHub中的提交历史记录的右栏中找到它。

接下来,您要使用

将git树重置为该提交
git reset --hard 6b1d1ca

由于您要从历史记录中删除提交,因此您需要强制推送到GitHub,这可以通过附加选项--force来完成。

git push --force

小心使用--force选项,如果你已经推送了提交,因为它们肯定会被覆盖。

答案 2 :(得分:0)

您可以使用rebase命令删除或更改提交消息。

  • 输入git rebase -i HEAD~4-i选项执行interactive rebasing

  • 您的文本编辑器将打开,列出最后的 4 提交。每次提交都会在其前面加上pick

    • 删除要删除的提交的行。这将告诉rebase您不希望将这些提交保留在历史记录中。

    • 保存文件并关闭它。

  • 现在,git应根据您在打开的文件中选择的选项对历史记录进行“重新定义”,即删除您不想要的提交。

如果要更改提交消息,请在每次要编辑的提交之前将pick更改为reword并保存文件。