我试图遵循其他类似主题中的一些建议,尝试重新提交我的提交:
git rebase --onto master~5 master~1 master
但我没有得到我想要的东西(但可能是由于我的无力)。
现在,我想要的是删除我的所有提交并仅保留文件的最后一个版本,就像我删除我的文件并且我第一次再次发布它一样。
我想删除一些要点的提交;我真的只对最后一个版本感兴趣。
真的,我想使用像pastebin这样的gist,而不保存修订版,但只保留最后一个版本。
我知道我可以删除我的要点并创建另一个,但如果可能的话,我更喜欢链接没有改变。
答案 0 :(得分:4)
如果您尝试仅丢弃单个文件的所有先前历史记录,并且该文件用于修改其他文件的提交,则rebase
(可能)是必需的。如果您只想丢弃整个存储库的所有历史记录,可以选择以下两个选项:
将HEAD设置为新的无父提交,并将当前工作目录作为其树(git checkout具有执行类似功能的--orphan选项):
$ TREE=$( git show -s --format='%T' HEAD )
$ HEAD=$( echo initial commit | git commit-tree $TREE )
$ git reset $HEAD
完成此操作后,所有以前的提交仍然可以作为对象访问,但您必须努力获取它们。如果您有分支和/或标记引用它们,它们将保持不变,但如果它们未被引用,它们最终将被垃圾收集器丢弃。
或者,只是吹掉git repo并重新开始:
$ cd $( git rev-parse --show-cdup ) # Go to top level directory
$ rm -rf .git
$ git init
$ git add .