2014-05-07 141 views
-1

在我的歷史記錄中,我有1個似乎由於某種原因被複制的提交(檢查差異並且完全相同)。從歷史記錄中刪除單個提交

$ git log pretty=oneline 
... 
... 
d21971dd55e4b4f62421b6531b3fd1e65102974d Add Source Sans Pro required weights 
... 
... 
8aaba297017086094b60087b5601ccc01d50be54 Add Source Sans Pro required weights 
... 
... 

此更改位於尚未推送的分支中。我該如何擺脫其中一個重複的提交?

編輯:提交日誌之間的點並不意味着它們之間只有兩個提交。有些情況下有10多個。

回答

3

爲了擺脫提交d21971的,你可以做

git rebase -i d21971^ 

這將打開提交了提交d21971的父列表中選擇您的文本編輯器。只需刪除提交d21971的行,保存並退出。它會刪除它。

爲了確保即使發生錯誤也不會丟失任何提交,可以先標記當前分支。例如:

git tag safetyTag 
git rebase -i d21971^ 
#Decide that you don't like what you just did 
git checkout safetyTag 
git branch -f master 
+0

但請注意,這是重寫歷史記錄,任何從前克隆存儲庫的人都將被掛起晾乾。還要注意,缺少的提交可能意味着下列提交中的一連串衝突。 – vonbrand

相關問題