2016-03-16 237 views
1

所以....我說試圖從歷史中刪除一個文件,因爲它包含一個密碼(我知道 - 應該從一開始就在gitignore!)。我跟着https://help.github.com/articles/remove-sensitive-data/到了第6點,但是我的SSH密鑰被Git Bash使用(通常使用sourcetree作爲存儲在BitBucket上的存儲庫),這個問題必須修復,現在我有一個我的歷史記錄中的所有提交副本最近兩次)。Git從歷史記錄中刪除重複的提交

查看父母時,重複的提交是獨立的。實際上,它好像有兩個從未合併過的主分支。

下面來看看我的日誌的頂部和底部: Top and bottom of log

如果任何人都可以建議我怎麼能打掃一下我將不勝感激。

回答

1

通過agrias

評論後 「發佈 - 201603141450」 的一個分支?

(這是一個標籤) 我意識到我所有的標籤都在舊的提交中。刪除這些標籤或將它們移動到新版本的提交中,將舊提交從我的歷史中刪除。不是那些熟悉標籤的人,我猜這些標籤都有自己的歷史。

我猜如果我沒有SSH密鑰問題,並在https://help.github.com/articles/remove-sensitive-data/中繼續執行第7步,它會移動我的標籤並避免此問題。

1

不是sourcetree用戶,而是用rebase清理歷史記錄。

​​

其中x是您想要返回的提交數量。

如果您只想在視覺上清理歷史記錄並保留提交,則可以使用squash選項。如果您想完全刪除提交,您可以通過刪除編輯器中的行來刪除提交。

+0

由於違規提交回到第一次提交,我不能使用rebase(除非有人可以建議我怎麼做),並且我認爲squash會壓縮提交給它的父項 - 在所顯示的兩個分支之間不交叉。我如何刪除選定的提交? – KELF

+0

是「Pub-201603141450」分支嗎?如果是這樣,'git log'看起來如何。如果它看起來沒問題,你可以嘗試改變主人的頭以指向好分支的頭。從源代碼樹上的外觀看起來,黃色線是它自己的分支,這裏的關鍵可能是檢查該分支。 –

1

如果提交數量不是那麼多,那麼創建一個新的分支並使用獲取提交你需要一個一個的提交也許是一個解決方案。因爲你可以編寫腳本來完成它。完成後,你可以刪除你不想要的舊分支。

順便說一句。

我以爲壁球壁球會與其父

這是不正確提交,git rebase -i提供多種選擇,不僅擠壓與其父提交。

相關問題