LFS 并不能像”變魔術(shù)一樣”處理所有的大型數(shù)據(jù):它需要記錄并保存每一個變化。然而钳幅,這就把負(fù)擔(dān)轉(zhuǎn)移給了遠(yuǎn)程服務(wù)器 - 允許本地倉庫保持相對的精簡物蝙。
為了實(shí)現(xiàn)這個可能,LFS 耍了一個小把戲:它在本地倉庫中并不保留所有的文件版本敢艰,而是僅根據(jù)需要提供檢出版本中必需的文件诬乞。
但這引發(fā)了一個有意思的問題:如果這些龐大的文件本身沒有出現(xiàn)在你的本地倉庫中….改用什么來代替呢? LFS 保存輕量級指針中有真實(shí)的文件數(shù)據(jù)。當(dāng)你用一個這樣的指針去遷出一個修訂版時钠导,LFS 會很輕易地找到源文件(不在他上面可能就在服務(wù)器上震嫉,特殊緩存)然后你下載就行了。
因此牡属,你最終只會得到你真正想要的文件 - 而不是一些你可能永遠(yuǎn)都不需要冗余數(shù)據(jù)
# 1票堵、安裝git-lfs,brew install git-lfs
# 2湃望、進(jìn)入你的本地倉庫,執(zhí)行 git lfs install
# 3痰驱、沒有特別說明的情況下证芭,LFS 不會處理大文件問題,因此担映,我們必須明確告訴 LFS 該處理哪些文件废士。執(zhí)行 git lfs track "*.exe" /* .exe? 可以替換成你要上傳的后綴名 如.pdf格式的*/
# 4、執(zhí)行 git add .gitattributes
# 5蝇完、執(zhí)行?git add my_large_file.exe /* 上傳你打算要上傳的大文件*/
# 6官硝、執(zhí)行 git lfs ls-files
# 7、git commit -m "Add the large file"
# 8短蜕、git push origin master?/*分支名*/
目前來說氢架,支持GitHub、GitLab朋魔、Coding岖研。gitee(也就是git.oschina.net)目前還不支持。
Tip:如果需要拉取大文件時警检,需使用git lfs pull命令
下次上傳時孙援,刪除 track 的文件 (已經(jīng)commit的文件)
git rm 要忽略的文件
git commit -a -m "刪除不需要的文件"