gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

十分鐘學會GIT倉庫瘦身及GIT LFS遷移說明

本篇文章給大家帶來了關于GIT倉庫瘦身及GIT LFS遷移說明的相關知識,希望對大家有幫助。

十分鐘學會GIT倉庫瘦身及GIT LFS遷移說明

背景

之前一些git項目上 CI/CD,發現jenkins git clone失敗,設置depth及clone時間之類的無果。只能考慮倉庫瘦身之類的策略。發現倉庫有不少的二進制文件,且這些二進制文件變更還挺頻繁,這種操作會導致git倉庫成倍增長極速膨脹,git本身只適合管理文本文件。

另外說一則有趣的往事,之前有個同事是圖形編程,這個語言源碼是圖片形式的,而且一個文件又特別大,上git管理,小公司項目變更又頻繁,導致沒多久公司內部搭的git服務器硬盤居然就給他的幾個git倉庫給占滿了。

GIT LFS (Large File Storage)

雖然git一直不適合管理二進制文件,不過現在 git 也好像默認提供了git lfs 這個專門用來管理大文件的插件。

基本原理簡單來說就是使用類似一個文件指針(文本)代替實際的文件存儲,git只存儲文件指針的變更歷史而不是整個二進制文件,并且在使用的時候,自動提供hook,方便在如clone、pull、reset等操作會自動去獲取這些文件指針的源二進制文件,同樣更新二進制文件commit的時候,git 會自動將源文件轉成文件指針進git log,同時源文件上傳lfs。所以在用戶層面,GIT LFS的使用其實是無感的。

遷移

上面簡單介紹了一下GIT LFS,接下來直接將如何遷移,至于為什么直接講遷移而不是從0開始如何使用LFS。
是因為往往是git倉庫用著用著發現,倉庫好大、clone好慢,然后才是想著用LFS。

遷移需要我們有倉庫的管理員權限,并且將保護分支之類取消保護;
具體LFS遷移主要分為以下幾步。

遷移前最好做好備份,并且和團隊同事溝通好,畢竟操作涉及-f高危操作,容易背鍋。

GIT LFS 服務端配置

部分自建git 服務的話,可能需要服務端配置開啟LFS,比如gitlab。

GIT LFS 客戶端安裝

windows 的git安裝包自帶了該插件,不需要另外安裝,其他平臺可自行安裝,鏈接。

在命令行嘗試以下命令。

git lfs

如果有類似help文檔信息輸出,就是已經有git lfs客戶端了。

git-lfs/2.11.0 (GitHub; windows amd64; go 1.14.2; git 48b28d97)git lfs <command> [<args>]Git LFS is a system for managing and versioning large files in association with a Git repository.  Instead of storing the large files within the Git repository as blobs, Git LFS stores special "pointer files" in the repository, while storing the actual file contents on a Git LFS server.  The contents of the large file are downloaded automatically when needed, for example when a Git branch containing the large file is checked out.Git LFS works by using a "smudge" filter to look up the large file contents based on the pointer file, and a "clean" filter to create a new version of the pointer file when the large file's contents change.It also uses a pre-push hook to upload the large file contents to the Git LFS server whenever a commit containing a new large file version is about to be pushed to the corresponding Git server.

而后需要執行以下命令配置LFS全局環境,只需要配置一次,同時也會去更新當前倉庫的hooks

git lfs install

遷移本地歷史倉庫

lfs遷移基本思想:lfs重寫本地歷史—>force push覆寫遠端,達到遷移的效果。
所以我們最好將本地倉庫與遠端同步,并且將所有的遠端分支都創建本地分支;
而后cd到自己本地倉庫,執行以下下命令,–include里面是glob表達式,自行添加想LFS管理的文件名,–everything代表所有本地分支

git lfs migrate import --include="*.bin,*.lib,*.so,*.dll,*.a,*.param,*.zip,*.gz" --everything
migrate: Sorting commits: ..., done. migrate: Rewriting commits: 100% (193/193), done.   develop                       bacb490a80ea46d73bd3866c2e7cf7ad199ce5eb -> 72884bcb4629417bad73ea3d485d08a0708909cd   feature/npu-platform          a3645632756becc527c7f4d58514b3c479f824d3 -> e227900a3903b3a6955e4dffee48daeceac6cdff   master                        1ccdecdcb4b5d6224a6e24c6f87793bfcc15ee4c -> 1d9fc2139600ef3d92a20d65bb5db89021b8c488   0.1.0                         07c6b2aa732506f1cc88cedb551f37f376b6efa6 -> 8e55193221dfca9f6bb28ccd9cca85af9c5958c9   1.0.0                         0f694efcd7aa9df641836e1ea6eebbb730b940b5 -> 3f9e77575120b6e56b34790c998a362116da75f5 migrate: Updating refs: ..., done.

重寫完本地分支、tag之類的,

我們在這里可以先執行 git lfs ls-files查看有哪些文件被轉成了lfs管理,檢查是否有遺漏
十分鐘學會GIT倉庫瘦身及GIT LFS遷移說明

這個時候無論在哪個分支,都會出現 .gitattributes 文件,且都會被添加上類似以下內容。

*.bin filter=lfs diff=lfs merge=lfs -text *.lib filter=lfs diff=lfs merge=lfs -text *.so filter=lfs diff=lfs merge=lfs -text *.dll filter=lfs diff=lfs merge=lfs -text *.a filter=lfs diff=lfs merge=lfs -text *.param filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.gz filter=lfs diff=lfs merge=lfs -text

同時可以看到我們二進制文件全部都轉成了以下形式文本

version https://git-lfs.github.com/spec/v1 oid sha256:9171c8350d72ccca6ad60ac80b577157ad1f9fd44ca05744216e02ccbfcdf491 size 10260

確認無誤,之后就可以推送到遠端;
由于lfs的遷移會重寫所有的commit,并且修改hash值,因此需要我們需要加上–froce
這步需要取消保護分支(保護分支無法-f)

git push --force --all

這樣遠程倉庫的lfs遷移就完成了

遷移一些補充說明

  1. 遷移者的本地倉庫lfs文件轉源文件:經過以上步驟,由于我們將所有文件都已經轉成文件指針,我們需要將文件下載回來才能正常使用該倉庫。
    需要注意,其他人重新clone 或者同步 lfs遷移過的remote倉庫 是不需要該步,只針對遷移作者本地的倉庫。
git lfs pull
  1. 團隊中其他成員遷移前的本地倉庫同步: 由于遠程倉庫的歷史已經被全部重寫,所以無法直接同步,最好是刪除本地分支,重新拉取遠程分支,如果本地已經有部分commit需要提交,可以重名本地分支,拉取遠程再做cherry pick。git tag 同理,刪除遷移前的tag。
  2. 本地倉庫清理:上面的遷移成功將二進制文件遷移成git lfs 對象,git log 也不在存儲源文件文件變更而是指針變更,但是在本地.git文件夾中仍存在之前不再需要的git log 緩存,執行以下命令做清理。
git reflog expire --expire-unreachable=now --all git gc --prune=now

清理前后倉庫對比

lfs直觀來講

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
中文字幕天天干| 亚洲免费成人在线视频| 成人区一区二区| 中文字幕av久久| 免费cad大片在线观看| 在线播放 亚洲| 欧美性受xxxxxx黑人xyx性爽| 成人午夜精品久久久久久久蜜臀| 天堂网成人在线| 亚洲啊啊啊啊啊| a级黄色小视频| 97xxxxx| 九九九九九伊人| 91国内在线播放| 国产午夜精品视频一区二区三区| 五月激情婷婷在线| 欧美一级爱爱视频| 黄色国产一级视频| 国产福利片一区二区| 日本毛片在线免费观看| 久章草在线视频| 成年女人18级毛片毛片免费| 中文字幕欧美人妻精品一区| 欧美一级裸体视频| 一二三av在线| 亚洲 中文字幕 日韩 无码| 天堂网成人在线| 男人揉女人奶房视频60分| 国产对白在线播放| 中文字幕在线视频一区二区| 久久综合九色综合88i| 国产91porn| 午夜啪啪免费视频| 亚洲第一色av| 激情成人在线观看| www.夜夜爽| 日本道在线视频| 久艹在线免费观看| 中国丰满熟妇xxxx性| 三级在线免费观看| 国产极品尤物在线| 人妻有码中文字幕| 美女av免费在线观看| www.se五月| 涩涩网站在线看| 97精品国产97久久久久久粉红| 在线观看免费不卡av| 国产九九热视频| 亚洲天堂av免费在线观看| 人妻少妇精品久久| 国产视频1区2区3区| 国产av第一区| 欧美成人福利在线观看| 成人在线免费观看网址| 秋霞无码一区二区| 欧美 日韩 国产 在线观看| 999久久欧美人妻一区二区| 国产精品丝袜久久久久久消防器材| 三级a三级三级三级a十八发禁止| 第四色婷婷基地| 欧美变态另类刺激| 黄色一级免费大片| 成年人黄色在线观看| 欧美特黄aaa| 亚洲男人天堂2021| www.com操| www黄色av| 成年女人18级毛片毛片免费| www日韩在线观看| 日韩欧美国产免费| 日韩av三级在线| 日韩国产小视频| 99久久免费观看| 超碰影院在线观看| 男人天堂网视频| 成人一区二区三| 亚洲精品自拍网| 午夜福利123| 国产v片免费观看| 91专区在线观看| 日本三区在线观看| 美女扒开大腿让男人桶| 中国女人做爰视频| 青青青青草视频| 国产 porn| 日韩av综合在线观看| 污视频免费在线观看网站| 一级黄色录像免费看| 草草草在线视频| 水蜜桃色314在线观看| 国产精品视频中文字幕| 人妻无码一区二区三区四区| 国模吧无码一区二区三区| 法国空姐在线观看免费| 亚欧美在线观看| 91在线视频观看免费| 1024av视频| 欧美国产亚洲一区| 国产免费黄视频| 久久久久久综合网| 国产xxxxx视频| 91九色在线观看视频| 中文字幕乱码免费| 亚洲三级视频网站| 欧美日韩怡红院| 中文字幕制服丝袜在线| 国产福利片一区二区| caoporm在线视频| 亚洲精品久久久中文字幕| 天堂v在线视频| 大陆极品少妇内射aaaaa| 日本美女高潮视频| 亚洲国产精品女人| 国产精品三级一区二区| 日韩中文字幕三区| www.亚洲一区二区| 亚洲精品mv在线观看| 四虎精品欧美一区二区免费| 阿v天堂2017| 国产在线无码精品| 在线看免费毛片| 欧美变态另类刺激| 99re99热| 国产精品av免费| 九九九九九九九九| 久久99爱视频| 国产在线观看福利| 奇米影视亚洲色图| 毛片av在线播放| 欧美一级爱爱视频| 国产精品波多野结衣| 99sesese| 超碰在线免费av| 精品国偷自产一区二区三区| 深夜做爰性大片蜜桃| 色18美女社区| 超碰在线超碰在线| 美国av在线播放| www一区二区www免费| 你懂的av在线| av免费在线播放网站| 亚洲 中文字幕 日韩 无码| 中文字幕在线观看日| 日本精品一区在线| 福利视频一二区| 37pao成人国产永久免费视频| 在线观看国产一级片| 欧美激情视频免费看| 日韩av片在线看| 亚洲精品国产久| 狠狠97人人婷婷五月| 亚洲第一精品区| 北条麻妃视频在线| www.激情网| 国产成年人在线观看| 男人添女人下部视频免费| 男人天堂av片| www.桃色.com| 日韩av.com| 中文字幕天天干| 男女裸体影院高潮| 亚洲精品国产久| 女人扒开屁股爽桶30分钟| 99久久久无码国产精品性色戒| 婷婷六月天在线| 成人3d动漫一区二区三区| 欧美成人精品欧美一级乱| 国产va亚洲va在线va| 很污的网站在线观看| 大片在线观看网站免费收看| 在线观看免费污视频| 亚洲成熟丰满熟妇高潮xxxxx| 亚洲精品久久久久久久蜜桃臀| 久久久久久久久久毛片| 污污的视频免费| 深爱五月综合网| 国产91对白刺激露脸在线观看| 亚洲精品手机在线观看| 可以看污的网站| 国产又粗又猛大又黄又爽| 国产免费观看高清视频| 一级黄色片在线免费观看| 在线观看视频在线观看| 霍思燕三级露全乳照| 在线观看日本www| 精品免费国产一区二区| 中国黄色片一级| 国产aaaaa毛片| 女人和拘做爰正片视频| 思思久久精品视频| 午夜视频在线瓜伦| 亚洲36d大奶网| 超碰在线播放91| 国产午夜伦鲁鲁| 欧美一级爱爱视频| 美女av免费观看| 奇米影视亚洲色图| 黄频视频在线观看| 久久婷婷中文字幕| 亚洲精品永久视频|