1. 程式人生 > >git清空歷史commits記錄

git清空歷史commits記錄

git是當前最常見的版本控制工具,但出現以下情況時,往往需要清空歷史commits記錄:

  • commits記錄佔用空間過大甚至遠遠超過版本控制檔案本身大小,進行雲端程式碼管理時會受制於空間限制,無法繼續更新
  • 歷史記錄中存在敏感資訊,需要清理

清理歷史commits記錄的核心思想是,直接刪除本地的.git目錄,重新建立git倉庫並與遠端倉庫建立連結,採用硬提交的方式覆蓋遠端倉庫的commits記錄。下面是一段示例指令碼。

引數說明:

  • $REPO_DIR 表示需要處理的Git倉庫本地目錄
  • [email protected]:xxxx/$REPO_DIR.git 表示遠端倉庫地址

則可以按照如下步驟處理:

進入本地倉庫,刪除.git目錄

cd $REPO_DIR
rm -rf .git

重新git初始化並新增commit

git init
git add * # 重新新增所有的檔案
git commit -m "restart git commit"

新增遠端倉庫連結

在新增遠端倉庫時,需要設定遠端倉庫的代號,本教程記為origin.

git remote -add origin [email protected]:xxxx/$REPO_DIR.git

硬提交,覆蓋遠端倉庫的commits歷史記錄

假設提交到遠端倉庫的master分支,則硬提交指令碼如下:

git push -f origin master

硬提交之後,再看遠端倉庫master分支的commits記錄就變成1了。

至此,大功告成~