删除Github提交历史记录

时间:2011-08-13 05:02:20

标签: git github

我有没有删除我的github提交历史记录?我不想丢失所有提交,只是最后10个左右被推送到github。我似乎无法弄清楚如何做到这一点。

4 个答案:

答案 0 :(得分:62)

只需选择要返回的哈希并在克隆中执行:

git reset --hard hash# 
git push -f origin branch

其中branch是您要推送的分支的名称。瞧。小心推力。您可能希望复制工作目录,直到您熟悉它为止。

答案 1 :(得分:4)

如果您想这样做,可以使用HEAD~10

git reset --hard HEAD~10

git push -f origin master

建议不要删除服务器提交历史记录,尤其是:如果您有一组人在处理此存储库。

如果你有一个团队的人正在研究这个问题,我建议你回过头来添加一个撤消你不想要的代码的提交。

答案 2 :(得分:1)

我已将所有我的文件上传到我的第一个github项目,包括一些带有密钥的设置文件。在添加.gitignore文件之前,我必须返回并删除所有已包含的版本,并从项目的缓存中删除所有设置文件。

How I did this

gedit ./.git/logs/HEAD

找到您希望删除之前所有内容的“新根”的40个字符的SHA哈希值。将其复制到剪贴板并关闭它。 (您可能会也可能不会使用gedit,这是Linux的默认文本编辑器。

$> gedit ./.git/info/grafts

将SHA粘贴到此处。转到项目的目录。

$> cd ../..

$> git filter-branch

强制推送给主人,否则会阻止您删除历史记录的尝试。

$> git push --force -u origin master

删除您的grafts文件。

$> rm ./.git/info/grafts

没关系

嗯,我的回答只是成功的一半。我的公共活动RSS提要仍然包含所有差异的链接,详细说明了我想删除的信息。显然,there is no way to delete this,但您应该阅读Change your Password,并更新您可能意外上传的所有敏感数据。

答案 3 :(得分:0)

安装Git后,您还可以右键单击您的存储库文件夹 - Git GUI Here

选择存储库 - 可视化所有分支历史记录

右键单击所需的提交 - 将主分支历史重置为此处

现在你有3个选择:

Git

选择后,选择文件 - 重新加载

GitHub Desktop的提交中选择还原后管理以解决此问题,然后再次还原,以便我们回到原始代码,然后只是希望清理这些成对的Revert提交。