git-filter-repo 清除大文件教程

git filter-repo 是一個用于過濾和清理 Git 倉庫歷史的工具,它可以高效地批量修改提交歷史中的文件內容、刪除文件、重命名文件以及進行其他歷史重構操作。相較于 git filter-branch,它通常更快且更易于使用。

以下是一個基本示例,說明如何使用 git filter-repo 來刪除倉庫中特定的大文件:

安裝 git-filter-repo

  1. 首先確保你已安裝 Python,并且可以通過 pip(Python 的包管理器)來安裝軟件包。如果沒有安裝 Python 和 pip,需要先安裝它們。

  2. 使用 pip 安裝 git-filter-repo

python -m pip install --user git-filter-repo  # 對于個人用戶安裝
# 或者全局安裝(可能需要管理員權限)
python -m pip install git-filter-repo

安裝完成后,你可以直接使用 git-filter-repo 命令。但由于它并非 Git 內置命令,你需要在終端中直接調用它的路徑或者將它的安裝目錄添加到系統 PATH 環境變量中。例如,在 Unix/Linux 系統中,如果 git-filter-repo 已經被安裝在 ~/.local/bin/ 目錄下,你可以通過如下命令臨時添加到 PATH 中:?

export PATH=$PATH:~/.local/bin/

win11

C:\Users\w8\AppData\Roaming\Python\Python311\site-packages 

?

既然 git-filter-repo 已經安裝完畢,接下來你可以直接在命令行中使用它。但是請注意,在 Windows 系統中,可能需要將 git-filter-repo 的安裝路徑添加到系統的 PATH 環境變量,以便能在任何目錄下執行這個命令。

若要在當前終端會話中臨時添加到 PATH,可以運行以下命令(請替換實際的路徑):

set PATH=%PATH%;C:\Users\w8\AppData\Roaming\Python\Python311\Scripts

?

如果希望永久生效,你需要編輯系統的環境變量設置:

  1. 右鍵點擊“計算機”或“此電腦”,選擇“屬性”。

  2. 在左側菜單欄選擇“高級系統設置”。

  3. 在“系統屬性”窗口中點擊“環境變量”按鈕。

  4. 在“系統變量”區域找到名為 Path 的變量,選中后點擊“編輯”。

  5. 在“編輯環境變量”窗口中,點擊“新建”按鈕,然后添加 C:\Users\w8\AppData\Roaming\Python\Python311\Scripts 這個路徑。

  6. 點擊“確定”保存所有更改。

完成以上步驟后,你應該能夠在命令行中直接運行 git filter-repo 命令了

刪除倉庫歷史中的大文件

假設你想刪除歷史記錄中所有包含名為 large_file.txt 的文件,并且你知道這個文件存在于所有的提交中。

  1. 首先備份你的倉庫,以防萬一:

    1cp -r your_repo your_repo_backup

  2. 進入要處理的倉庫目錄:

    1cd your_repo

  3. 使用 git filter-repo 刪除指定文件:

    1git filter-repo --force --invert-paths --path large_file.txt

    參數解釋:

    • --force:允許覆蓋當前倉庫。

    • --invert-paths:保留不匹配路徑的提交,這里是反選,即刪除匹配路徑的文件。

    • --path large_file.txt:指定要從歷史中刪除的文件名。

  4. 清理并優化本地倉庫:

    1git reflog expire --all --expire-unreachable=now --update-reflogs
    2git gc --prune=now --aggressive

  5. 推送更改到遠程倉庫(如果必要的話):

    1git push origin --force --all
    2git push origin --force --tags

    注意:由于你改變了歷史記錄,所以需要用 --force 強制推送,并通知協作者他們需要重新克隆更新后的倉庫。

其他高級用法

除了刪除文件外,git filter-repo 還可以實現更多的功能,例如:

  • 刪除符合某種模式的所有文件:

    1git filter-repo --force --path-glob '*.zip'

  • 替換文件內容:

    1git filter-repo --replace-text <replacement-file>

    <replacement-file> 中定義替換規則。

  • 根據大小過濾文件:

    1git filter-repo --strip-blobs-bigger-than 10M

    刪除大于10MB的二進制文件。

  • 更多復雜操作,請參考官方文檔:https://github.com/newren/git-filter-repo/blob/main/README.md

請根據具體需求調整命令參數,并始終謹慎操作,因為修改歷史記錄會影響所有倉庫使用者。在執行這些操作前務必創建倉庫備份。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897164.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897164.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897164.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STM32之軟件SPI

SPI傳輸更快&#xff0c;最大可達80MHz&#xff0c;而I2C最大只有3.4MHz。輸入輸出是分開的&#xff0c;可以同時輸出輸入。是同步全雙工。僅支持一主多從。SS是從機選擇線。每個從機一根。SPI無應答機制的設計。 注意&#xff1a;所有設備需要共地&#xff0c;時鐘線主機輸出&…

Git清理本地殘留的、但已經在服務器上被刪除的分支

要篩選出已經被服務器刪除的本地分支&#xff0c;并在本地刪除這些分支&#xff0c;可以按照以下步驟進行操作&#xff1a; 步驟 1: 獲取遠程分支信息&#xff0c;確保本地的遠程分支信息是最新的&#xff1a; git fetch -p步驟 2: 列出本地分支和遠程分支&#xff1a; git …

DeepSeek 掌舵創意方向+即夢 AI 繪制夢幻藍圖,引領創作潮流

我的個人主頁 我的專欄&#xff1a; 人工智能領域、java-數據結構、Javase、C語言&#xff0c;希望能幫助到大家&#xff01;&#xff01;&#xff01; 點贊&#x1f44d;收藏? 前言 在當今數字化浪潮洶涌澎湃的時代&#xff0c;人工智能已然成為推動各領域變革與創新的核心驅…

elasticsearch商業產品

Elasticsearch商業產品介紹 在當今數字化時代&#xff0c;數據如同石油一樣珍貴。而要從海量的數據中提取有價值的信息&#xff0c;則需要強大的工具。這就是Elasticsearch商業產品的用武之地。Elasticsearch是一款開源的搜索引擎&#xff0c;它能夠快速地存儲、搜索和分析大規…

DeepSeek本地接口調用(Ollama)

前言 上篇博文&#xff0c;我們通過Ollama搭建了本地的DeepSeek模型&#xff0c;本文主要是方便開發人員&#xff0c;如何通過代碼或工具&#xff0c;通過API接口調用本地deepSeek模型 前文&#xff1a;DeepSeek-R1本地搭建_deepseek 本地部署-CSDN博客 注&#xff1a;本文不僅…

Deepin下創建WebStorm快捷方式

個人博客地址&#xff1a;Deepin下創建WebStorm快捷方式 | 一張假鈔的真實世界 下載WebStorm并解壓至安裝目錄&#xff0c;默認的只能通過命令行啟動&#xff0c;每次都需要先打開終端&#xff0c;很不方便。解決方法是創建快捷方式&#xff0c;并駐留任務欄。這樣點擊任務欄上…

物聯網系統搭建

實驗項目名稱 構建物聯網系統 實驗目的 掌握物聯網系統的一般構建方法。 實驗要求&#xff1a; 1&#xff0e;構建物聯網系統&#xff0c;實現前后端的交互。 實驗內容&#xff1a; CS模式MQTT&#xff08;不帶數據分析處理功能&#xff09; 實現智能設備與應用客戶端的交…

從零開始用HTML、CSS和JavaScript制作貪吃蛇網頁小游戲

〇、前言 貪吃蛇是一款經典的休閑游戲&#xff0c;在諾基亞手機時代風靡全球。 作為編程入門者&#xff0c;實現一個貪吃蛇游戲是學習Web前端技術的絕佳練習。 名人說&#xff1a;博觀而約取&#xff0c;厚積而薄發。——蘇軾《稼說送張琥》 創作者&#xff1a;Code_流蘇(CSDN…

LeetCode1328

非常抱歉&#xff0c;我理解錯了你的要求&#xff01;現在我會嚴格按照你的要求重新組織內容&#xff0c;確保在代碼段中不加入注釋&#xff0c;并在代碼逐行講解中加入代碼段。 LeetCode1328 目錄 題目描述示例思路分析代碼段代碼逐行講解復雜度分析總結的知識點整合總結 題…

STM32點亮LED燈

1.1 介紹&#xff1a; LED模塊。它的控制方法非常簡單&#xff0c;要想點亮LED&#xff0c;只要讓它兩端有一定的電壓就可以&#xff1b;實驗中&#xff0c;我們通過編程控制信號端S的高低電平&#xff0c;從而控制LED的亮滅。我們提供一個測試代碼控制LED模塊上實現閃爍的效果…

【華三】STP端口角色與狀態深度解析

STP端口角色與狀態深度解析&#xff1a;構建無環網絡的基石 引言一、STP基礎回顧二、端口角色詳解1. 根端口&#xff08;Root Port&#xff09;2. 指定端口&#xff08;Designated Port&#xff09;3. 非指定端口&#xff08;阻塞端口&#xff09; 三、端口狀態轉換流程四、角色…

計算機畢業設計Python+Django+Vue3微博數據輿情分析平臺 微博用戶畫像系統 微博輿情可視化(源碼+ 文檔+PPT+講解)

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

稚暉君級硬核:智元公司開源機器人通信框架AimRT入駐GitCode平臺

在科技的浪潮中&#xff0c;機器人技術正以前所未有的速度發展。它們不再只是科幻小說中的概念&#xff0c;而是逐漸融入到我們的日常生活中&#xff0c;從工廠的自動化生產線到家庭的智能助手&#xff0c;機器人的身影無處不在。然而&#xff0c;隨著機器人應用的日益復雜&…

[項目]基于FreeRTOS的STM32四軸飛行器: 四.LED控制

基于FreeRTOS的STM32四軸飛行器: 四.LED控制 一.配置Com層二.編寫驅動 一.配置Com層 先在Com_Config.h中定義燈位置的枚舉類型&#xff1a; 之后定義Led的結構體&#xff1a; 定義飛行器狀態&#xff1a; 在Com_Config.c中初始化四個燈&#xff1a; 在Com_Config.h外部聲明…

Ubuntu20.04雙系統安裝及軟件安裝(一):系統安裝

Ubuntu20.04雙系統安裝及軟件安裝&#xff08;一&#xff09;&#xff1a;系統安裝 Ubuntu系統卸載Ubuntu20.04安裝BIOS進入系統安裝 許久沒寫博客了&#xff0c;今天開始重新回歸了。首先記錄我在雙系統上重裝Ubuntu20.04的安裝過程記錄以及個人見解。 Ubuntu系統卸載 參考雙…

cursor+deepseek實現完整的俄羅斯方塊小游戲

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>俄羅斯方塊</title><style>body {margin: 0;display: flex;justify-content: center;align-items: center;height: 100vh;background: …

人工智能開發面經AI、大數據、算法

以下是一份AI算法開發崗位的面試面經&#xff0c;結合最新行業趨勢和經典問題&#xff0c;涵蓋技術解析與實戰案例&#xff0c;供參考&#xff1a; 一、機器學習基礎&#xff08;占比約30%&#xff09; 1. 過擬合與欠擬合的解決方案 問題&#xff1a;如何解決模型過擬合&…

【原創】Ollama Test API For Linux/MacOS/Unix

安裝Json解析工具 Linux/Unix sudo apt-get install jq -yMacOS brew install jq -y設置環境變量 export IP"192.168.250.229" export PORT"8080" export MODEL"deepseek-r1:7b"檢查Ollama版本 curl http://"$IP":"$PORT&qu…

【Git】基本指令

工作區、暫存區、版本庫 工作區&#xff1a;是在電腦上你要寫代碼或文件的目錄。暫存區&#xff1a;英文叫 stage 或 index。一般存放在 .git 目錄下的 index 文件&#xff08;.git/index&#xff09;中&#xff0c;我們把暫存區有時也叫作索引&#xff08;index&#xff09;。…

從數據到決策,永洪科技助力良信電器“智”領未來

在數字經濟浪潮洶涌的時代&#xff0c;數字化轉型已成為企業增強競爭力、實現可持續發展的必由之路。良信電器&#xff0c;作為國內知名的電氣設備制造企業&#xff0c;積極響應時代號召&#xff0c;攜手永洪科技&#xff0c;共同開啟了數字化轉型的新篇章。 上海良信電器股份有…