【问题标题】:Delete a commit from github [duplicate]从github删除提交[重复]
【发布时间】:2012-06-04 18:48:48
【问题描述】:

可能重复:
How can I remove a commit on github?
How to delete a '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 有了我删除的那三个提交。

我做错了什么?如何防止提交返回?

【问题讨论】:

    标签: git github commit


    【解决方案1】:

    在应用新更改之前使用 git rebase 进程。变基后添加新的更改并提交。

    git rebase -i HEAD~2
    
    git push origin +master
    

    【讨论】:

    • 谢谢!这似乎奏效了。但是,在 .git 目录中挖掘时,我在 log 下发现了一堆文件,其中引用了我要删除的提交。在执行 git push origin +master 之前,我还编辑了这些文件以删除引用。
    • @Jistanidiot,很可能你在搞乱git reflog 的存储空间。事实上,这不是一个好主意,因为git reflog 有自己的方法来操作其存储,并且您可以进行更改以破坏某些内容。
    • 谢谢!我首先做了一个git reset --hard &lt;commit_number&gt; 然后使用你的命令,它就像一个魅力!
    • 我做了 git reset --hard &lt;sha-commit-name-to-go-back-to&gt;git push -f origin HEAD^:master 然后 git rebase -i HEAD~2 和 nano 编辑器打开文件:File: /var/www/html/site-name/.git/rebase-merge/git-rebase-todo 选项为 pickrewordedit 等我没有不知道该怎么办...
    猜你喜欢
    • 2012-09-02
    • 2015-07-18
    • 2014-07-07
    • 2015-07-28
    • 2011-10-26
    • 2020-06-26
    • 2019-11-02
    • 2023-01-22
    相关资源
    最近更新 更多