我有一个存储库。
如何通过终端删除我的旧提交?我的 SSH 密钥已上传。
(我用的是github pages,这就是为什么版本跟踪并不重要,不想浪费Github的存储空间)
小智 8
删除.git文件夹可能会导致 git 存储库出现问题。如果您想删除所有提交历史记录但将代码保持在当前状态,那么这样做是非常安全的,如下所示:
查看
git checkout --orphan latest_branch
Run Code Online (Sandbox Code Playgroud)
添加所有文件
git add -A
Run Code Online (Sandbox Code Playgroud)
提交更改
git commit -am "commit message"
Run Code Online (Sandbox Code Playgroud)
删除分支
git branch -D master
Run Code Online (Sandbox Code Playgroud)
将当前分支重命名为 master
git branch -m master
Run Code Online (Sandbox Code Playgroud)
最后,强制更新您的存储库
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
PS:这不会保留您旧的提交历史记录。
你在这里有一个非常好的答案:https : //stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github
我引用
注意:请参阅下面
git rebase -i评论中的替代方案——
git reset --soft HEAD^首先,删除本地存储库上的提交。您可以使用
git rebase -i. 例如,如果这是您的最后一次提交,您可以git rebase -i HEAD~2在弹出的编辑器窗口中执行 并删除第二行。然后,使用 强制推送到 GitHub
git push origin +master。有关更多信息,请参阅Git Magic Chapter 5: Lessons of History - And Then Some(即,如果您想删除较旧的提交)。
哦,如果你的工作树很脏,你必须先做
git stash,然后再做git stash apply。
希望这对你有帮助:)
==== 编辑 ====
实际上,我只是重读了我链接到的帖子,特别是评论“警告 2” /sf/ask/31424361/
从中我了解到 git 似乎创建了一个新的提交并将指针移动到它,而不是在使用强制推送时删除它。也就是说,如果有人已经拥有您提交的 SHA1,他们仍然可以访问它。因此,在考虑到这一点时,我必须建议您按照 Tomasz Klim 的建议进行操作。
| 归档时间: |
|
| 查看次数: |
40910 次 |
| 最近记录: |