好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Git如何刪除歷史記錄中的大文件詳解

Git如何刪除歷史記錄中的大文件詳解

熱門標簽:承德地圖標注公司收費 華創e路航彩票銷售點地圖標注 suitecrm 地圖標注 高德地圖標注常顯 外呼系統號顯示星號怎么看 揭陽電腦外呼系統公司 銀川語音外呼系統中心 臨沂ai電銷機器人招商 鶴壁外呼系統公司

前言

Git 作為一個分布式的版本管理工具,代碼倉庫中是會保存所有歷史記錄的。雖然,Git 的 .gitignore 文件里可以定義一些忽略文件的規則,但是,在我們提交代碼的過程中,總會不小心誤提一些沒用的文件,如果文件中存在大文件,就會導致:就算我們把它刪了重新提交,.git 文件夾依然會占用較大的空間。

如何解決這個問題呢?其實,Git 已經為我們提供了解決方案,就是被稱為核彈級的命令 filter-branch。這個命令可以用來修改歷史提交記錄,把不需要的文件永久地從歷史記錄中刪除。

方法如下:

首先,我們需要找出大文件。

找出排名前 5 的 pack 記錄:

git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5

可以看到這樣的信息:

1753e0b6aa1cd3ed27d1d14e8e569664c685e896 blob 44600 43841 37970
ca12c545eae19d688ac840c7f0e2e623a1a4192b blob 45262 8534 140448
7a3265ee94c0ab25cf079ac8ccdf87f41d455d42 blob 54708 49093 171307
72590cee1315e32dada25535184dcee97c6f5af9 blob 1114323 1104823 113887612
4cc1f9dcef1004355d2a595d45808e99f100dc4d blob 114592569 113703558 184054

最后一條就是最大的一條記錄,4cc1f9dcef1004355d2a595d45808e99f100dc4d 是它的 id。
找出該記錄對應的文件:

git rev-list --objects --all | grep 4cc1f9dcef1004355d2a595d45808e99f100dc4d

可以看到:

4cc1f9dcef1004355d2a595d45808e99f100dc4d app/src/main/assets/Android群英傳.pdf

這個文件就是罪魁禍首,它占了有 100 多 M 的空間。

將該文件從歷史記錄中移除:

git log --pretty=oneline --branches -- app/src/main/assets/Android群英傳.pdf

重寫所有 commit,將該文件從 Git 歷史中完全移除:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch app/src/main/assets/Android群英傳.pdf' -- --all

到這里,歷史記錄中已經沒有該文件了。不過運行 filter-branch 產生的日志還是會對該文件有引用,所以還需要運行以下幾條命令,把該文件的引用完全刪除:

rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune

這個時候,再看文件夾,已經小了很多了。然后就可以 push 代碼了,不過就是需要強制 push:

git push --force

以上就是刪除 Git 歷史記錄中大文件的過程。

當然 filter-branch 的作用還不止這些,比如它還可以用來修改歷史提交記錄中的用戶名(username)和郵箱(email)等。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Git和Maven的子模塊簡單實踐
  • 利用github搭建個人maven倉庫的方法步驟
  • Docker-compose部署gitlab的方法步驟
  • VSCode配置Git的方法步驟隨記
  • Git忽略提交的3種方法及Git忽略規則
  • Git原理和常用操作
  • 微信小程序使用gitee進行版本管理
  • 詳解使用mpvue開發github小程序總結
  • 詳解git倉庫遷移的兩種解決方案
  • Git設置和取消代理的方法

標簽:七臺河 忻州 汕尾 三沙 許昌 棗莊 咸寧 萊蕪

巨人網絡通訊聲明:本文標題《Git如何刪除歷史記錄中的大文件詳解》,本文關鍵詞  Git,如何,刪除,歷史,記錄,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Git如何刪除歷史記錄中的大文件詳解》相關的同類信息!
  • 本頁收集關于Git如何刪除歷史記錄中的大文件詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 天赐的声音第一季| 国产精品久久久久久久久久KTV| 91无码精品国产AⅤ网站| 97久久精品国产成人影院| 免费看裸体美女??????| 久久久久久久久久久国产一区二区三区 | 骆冰淫转| 刘晓庆被李小冉骂10分钟| 亚洲国精产品一二二线| 天天干天天色综合网| 日韩久草视频| bl文库h啊好涨粗bl| 欧美日韩精品在线视频| 亚洲精品久久久久久动漫器材一区| 正在播放国产尾随丝袜美女| 午夜精品久久久内射近拍高清 | jazzy中国vsjazzyhiphop比较| 国产人妻久久久久久精品动图| 无套暴操| 肌肉壮汉榨浓喷| 女人被公牛进入| 整本都是车的双男主| 久热国产精品视频一区二区三区| 97亚洲AV无码秘?软件| 免费看黄视频软件下载| 韩日精品| 成人久久精品一区二区三区 | 大肉大捧一进一出好爽视频MBA| 总裁大人要够了没有| 涩app色版网站免费| 精品国产一线二线三线区别| 亚洲人成色77777在线观看古装| 又大又粗又爽毛片毛绒| 欧美成熟丰满老妇xxxx| 香港经典av三级观看| 色资源在线观看| 工地被强伦系列小说最新章节| 国产精品久久久久精品日日软件 | 美女被草视频在线观看| 青丝视频免费版在线看| mm131美女爽爽爽爽|