2012-07-17 43 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

相關問題