1

我试图遵循在其他类似主题中找到的一些建议,尝试重新提交我的提交:

git rebase --onto master~5 master~1 master

但我没有得到我想要的(但这可能是由于我的无能)。

现在,我想要的是删除我的所有提交并只维护文件的最后一个版本,就像我删除我的文件并第一次再次发布它一样。

我想删除对一些要点的提交;真的,我只对最后一个版本感兴趣。

真的,我想使用像 pastebin 这样的 gist,不保存修订,只保留最终版本。

我知道我可以删除我的要点并创建另一个要点,但如果可能的话,我更喜欢链接不改变。

4

1 回答 1

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 .
于 2012-07-17T14:34:05.177 回答