假設我有一個Git倉庫,其中包含大量樹(〜60 GiB)和一些歷史記錄,其中舊版本包含許多已刪除的文件。修剪舊的Git無需重新綁定
我現在想刪除舊的歷史,但沒有rebase
荷蘭國際集團所有提交剪枝點之後,因爲那樣會需要幾個小時每次提交。
我可以只刪除第一個承諾要移除的對象,並希望
git gc
刪除所有(現未引用的)舊的?或者這會導致恐慌,因爲缺少物體?我可以使用
git replace
更換一次提交我想用一個假除去提交和然後呼叫git gc
?是否有其他的方法來刪除我的舊提交到位?
我認爲任何種類的歷史重寫都必須涉及在修剪點之後重寫所有內容,除非每個提交的sha ID實際上並不基於其父項的數據。您可以通過'git filter-branch'或BFG Repo Cleaner更有效地進行操作。 –
每個提交的SHA-1 ID * *都是基於其父提交的數據設計的。您必須重新分配:您的剪枝點中的每個提交都需要具有全新的ID,因爲它基於不同的先前提交ID。 –