2012-07-17 16 views
1

我曾试图按照这里找到其他类似的主题提出了一些建议,试图重订我的提交:是否可以删除我所有的提交和维护,只有最后一个

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

,但我没有获得我想要什么(但可能是由于我无力)。

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

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

真的,我想使用pastebin之类的主旨,而不保存修订版本,但只保留最终版本。

我知道我可以删除我的要点并创建另一个,但是,如果可能的话,我宁愿如果链接没有改变。

+0

我会用交互式的rebase'git的变基-i COMMIT'改写历史,因为'COMMIT'。但我不确定你是否可以改变github gists的提交历史。 – 2012-07-17 12:31:46

回答

3

如果您试图放弃所有以前的历史记录只有一个文件,并且该文件用于提交修改其他文件,rebase(可能)是必要的。如果您只想放弃整个存储库的所有历史记录,则可以使用以下两种方法:

将HEAD设置为以当前工作目录作为树的新的无父提交(git checkout具有执行类似操作的--orphan选项):

$ TREE=$(git show -s --format='%T' HEAD) 
$ HEAD=$(echo initial commit | git commit-tree $TREE) 
$ git reset $HEAD 

你这样做后,所有先前提交仍然作为对象访问,但你必须努力让他们。如果你有引用它们的分支和/或标签,它们将会持续存在,但如果它们未被引用,它们最终将被垃圾收集器丢弃。

,或者只是吹走混帐回购协议,并开始了:

$ cd $(git rev-parse --show-cdup) # Go to top level directory 
$ rm -rf .git 
$ git init 
$ git add . 
+0

这或多或少是我会做的。我喜欢'只是重置它到已知的树'的方法 – sehe 2012-07-17 15:59:34

+0

谢谢,这就是我想要的,我知道我以一种奇怪的方式使用git – gialloporpora 2012-07-20 11:07:58

相关问题