亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:03:03
字體:
來源:轉載
供稿:網友

前言

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 37970ca12c545eae19d688ac840c7f0e2e623a1a4192b blob 45262 8534 1404487a3265ee94c0ab25cf079ac8ccdf87f41d455d42 blob 54708 49093 17130772590cee1315e32dada25535184dcee97c6f5af9 blob 1114323 1104823 1138876124cc1f9dcef1004355d2a595d45808e99f100dc4d 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/originalrm -Rf .git/logs/git gcgit prune

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

git push --force

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

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

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美黄色动漫| 91视频国产精品| 亚洲美女福利视频网站| 久久免费在线观看| 国产精品久久久久影院日本| 黄色成人在线免费| 国产精品久久久久久av福利软件| 国产91免费观看| 欧美寡妇偷汉性猛交| 国产综合在线观看视频| 亚洲欧洲午夜一线一品| 亚洲黄色片网站| 一色桃子一区二区| 国产亚洲激情视频在线| 欧美精品一区二区三区国产精品| 成人免费高清完整版在线观看| 亚洲综合大片69999| 国产成人小视频在线观看| 最近2019好看的中文字幕免费| 国产亚洲a∨片在线观看| 亚洲精品免费一区二区三区| 亚洲精品美女在线观看播放| 91精品国产自产在线观看永久| 精品亚洲va在线va天堂资源站| 久久久影视精品| 精品国产电影一区| 亚洲www在线| 久久全球大尺度高清视频| 日韩在线视频线视频免费网站| 久久久999精品视频| 久久久久久久久久久亚洲| 成人黄色午夜影院| 亚洲欧美三级伦理| 欧美日韩亚洲成人| 在线日韩av观看| 色婷婷av一区二区三区在线观看| 亚洲欧美日韩久久久久久| 在线免费看av不卡| 国产免费一区二区三区在线能观看| 26uuu日韩精品一区二区| 亚洲欧美成人一区二区在线电影| 一本一本久久a久久精品综合小说| 日韩av网址在线| 欧美在线视频导航| 亚洲男子天堂网| 精品久久久久久久大神国产| 国产精品视频xxxx| 成人福利网站在线观看| 懂色av影视一区二区三区| 亚洲另类激情图| 不卡av电影在线观看| 久热精品视频在线观看| 国产精品亚洲网站| 国产精品免费久久久| 亚洲视频在线播放| 亚洲无限乱码一二三四麻| 97精品国产aⅴ7777| 欧美在线一区二区三区四| 色综合影院在线| 亚洲色图美腿丝袜| 欧美精品videofree1080p| 午夜精品一区二区三区在线播放| 亚洲图片欧洲图片av| 国产精品夫妻激情| 亚洲电影中文字幕| 午夜精品99久久免费| 欧美大片免费看| 国产精品aaa| 国产成+人+综合+亚洲欧美丁香花| 国产成人激情小视频| 91精品综合久久久久久五月天| 97在线免费观看视频| 亚洲国内精品在线| 欧美成人网在线| 国产精品一区二区性色av| 日韩精品亚洲精品| 欧美肥老太性生活视频| 日韩av高清不卡| 国产视频精品va久久久久久| 91在线无精精品一区二区| 欧美大尺度激情区在线播放| 亚洲最大福利视频网| 欧美性色视频在线| 成人国产精品av| 欧美成人免费在线视频| 亚洲剧情一区二区| 欧美成人剧情片在线观看| 国产精品福利观看| 欧美精品日韩www.p站| 日韩资源在线观看| 国产精品成人免费视频| 中文字幕日韩精品在线观看| 成人免费视频网址| 一本大道亚洲视频| 亚洲免费一在线| 成人午夜激情网| 精品视频久久久| 欧美日韩在线视频观看| 久久精品久久久久久| 久久久久国色av免费观看性色| 欧洲中文字幕国产精品| 欧美中文字幕在线视频| 久久久国产一区二区三区| 欧美中文字幕在线视频| 欧美激情欧美狂野欧美精品| 亚洲免费小视频| 中文字幕国产精品| 日韩的一区二区| 欧美极品少妇xxxxⅹ喷水| 久久久精品一区二区三区| 国产成一区二区| 日韩精品亚洲精品| 免费不卡欧美自拍视频| 国产91露脸中文字幕在线| 91精品国产综合久久久久久久久| xxx成人少妇69| 国产免费久久av| 久久久综合免费视频| 3344国产精品免费看| 久久久久一本一区二区青青蜜月| 日韩电影中文字幕av| 日韩精品中文在线观看| 久久视频精品在线| 狠狠躁夜夜躁人人爽超碰91| 亚洲jizzjizz日本少妇| 欧美最顶级丰满的aⅴ艳星| 欧美激情图片区| 欧美一级大胆视频| 久久久综合免费视频| 欧美日韩亚洲视频一区| 成人在线国产精品| 国产中文字幕亚洲| 国产精品视频永久免费播放| 久久精品在线视频| 91精品久久久久久久久久入口| 亚洲欧美日本伦理| 77777少妇光屁股久久一区| 美女精品久久久| 国产香蕉一区二区三区在线视频| 国产精品一二三在线| 久久免费视频网站| 亚州成人av在线| 日韩人在线观看| 亚洲qvod图片区电影| 国产一区二区日韩精品欧美精品| 欧美激情手机在线视频| 久久久久久久激情视频| 97av在线视频免费播放| 久久国产精品久久久久久久久久| 中文字幕无线精品亚洲乱码一区| 青草成人免费视频| 国模吧一区二区三区| 久久免费高清视频| 欧美在线播放视频| 亚洲国产婷婷香蕉久久久久久| 国产女人精品视频| 91亚洲va在线va天堂va国| 成人福利在线视频| 日韩av在线网| 亚洲爱爱爱爱爱| 国产v综合ⅴ日韩v欧美大片| 国产精品678| 日韩中文字幕免费视频| 91精品国产乱码久久久久久久久|