问题 从github删除提交[重复]


可能重复:
如何在github上删除提交?
如何删除'git commit' 

所以我试图从github中删除提交。

这是3次提交之前,如果所有的更改都丢失了我就可以了。

所以基于这里的问题,我做了一个

git reset --hard <sha-commit-name-to-go-back-to>
git push -f origin HEAD^:master

现在它已经从github以及git log中消失了。

然后我重新修改了我的修改

git add <file I changed>
git commit
git log

一切都很好看。没有旧提交的痕迹。所以我终于做了一个:

git push

现在突然github有我删除的那三个提交。

我究竟做错了什么?如何保持提交不返回?


1437
2018-05-30 14:03


起源



答案:


在应用新更改之前使用git rebase进程。重新定位后添加新更改并提交。

git rebase -i HEAD~2

git push origin +master

12
2018-05-30 14:11



谢谢!这似乎有效。然而,在.git目录中挖掘我在日志下发现了一堆文件,引用了我要删除的提交。在编写git push origin + master之前,我还编辑了这些文件以删除引用。 - Jistanidiot
@Jistanidiot,很可能是你搞砸了 git reflog存储。实际上并不是太明亮的想法 git reflog 有自己的方法来操纵它的存储,你有变化来打破一些东西。 - kostix
谢谢!我先做了一个 git reset --hard <commit_number> 然后使用你的命令,它就像一个魅力! - Kenny Cason
我做到了 git reset --hard <sha-commit-name-to-go-back-to> , git push -f origin HEAD^:master 接着 git rebase -i HEAD~2 和nano编辑器打开文件: File: /var/www/html/site-name/.git/rebase-merge/git-rebase-todo 有选项 pick, reword, edit 我不知道该做什么...... - user1063287


答案:


在应用新更改之前使用git rebase进程。重新定位后添加新更改并提交。

git rebase -i HEAD~2

git push origin +master

12
2018-05-30 14:11



谢谢!这似乎有效。然而,在.git目录中挖掘我在日志下发现了一堆文件,引用了我要删除的提交。在编写git push origin + master之前,我还编辑了这些文件以删除引用。 - Jistanidiot
@Jistanidiot,很可能是你搞砸了 git reflog存储。实际上并不是太明亮的想法 git reflog 有自己的方法来操纵它的存储,你有变化来打破一些东西。 - kostix
谢谢!我先做了一个 git reset --hard <commit_number> 然后使用你的命令,它就像一个魅力! - Kenny Cason
我做到了 git reset --hard <sha-commit-name-to-go-back-to> , git push -f origin HEAD^:master 接着 git rebase -i HEAD~2 和nano编辑器打开文件: File: /var/www/html/site-name/.git/rebase-merge/git-rebase-todo 有选项 pick, reword, edit 我不知道该做什么...... - user1063287