git清空歷史commits記錄
阿新 • • 發佈:2018-11-06
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了。
至此,大功告成~