簡體   English   中英

如何清理git歷史?

[英]How to clean git history?

有一種情況:

  1. [添加許多文件]開發人員意外地將外部依賴項添加到存儲庫(數千個文件)。
  2. [make commit]接下來在這個提交中添加了幾個提交。
  3. [刪除許多文件]然后他看到了存儲庫中的外部依賴項,並將其刪除。
  4. [make commit]並最終提交一些提交並將其推送到掌握。

現在我在Github統計中看到,開發人員添加了1kk行,並刪除了1kk行。

我怎樣才能清理git歷史? 如何更改這些提交並從歷史記錄中刪除這些文件?

謝謝

您可以使用以下任一方法使用github建議的步驟

  1. 使用filter-branch並在步驟3而不是Rackfile添加您Rackfile添加的目錄。 同樣遵循步驟8 ,這非常重要,因為您正在修改歷史記錄。
  2. 使用BFG ,並通知其他開發人員進行rebase,因為BFG也會改變歷史記錄。

您可以使用git rebase -i <last good commit>然后在編輯器中選擇壓縮提交添加並將文件刪除為一個

這樣做的缺點是,您只需要一個提交,您可能希望將兩個更改集分開。

此外,您將重寫歷史記錄,並且需要注意開發人員重置為新歷史記錄。

使用git-filter-branch--tree-filter--index-filter

鏈接中的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM