Git大文件存儲將幫助Git處理大型二進制文件

fdwm 10年前發布 | 17K 次閱讀 Git

原文  http://www.infoq.com/cn/news/2015/04/github-large-file-storage


GitHub宣布 ,作為 開源的Git擴展 ,Git大文件存儲(Large File Storage,簡稱LFS)的目標是更好地把“大型二進制文件,比如音頻文件、數據集、圖像和視頻”集成到Git的工作流中。

眾所周知,Git在存儲二進制文件時效率不高,因為:


Git默認會壓縮并存儲二進制文件的所有完整版本,如果二進制文件很多,這種做法顯然不是最優。

Git LFS處理大型二進制文件的方式是用“文本指針”替換它們。這些文本指針實際上是包含二進制文件信息的文本文件。文本指針存儲在Git中,而大文件本身通過HTTPS托管在 Git LFS服務器 上。

Git LFS向Git中添加了一條新命令 lfs ,支持以下參數:

  • config: 顯示Git LFS的配置。
  • init: 初始化Git LFS。
  • logs: 顯示git-lfs中的錯誤。
  • track: 向Git倉庫中添加一個大文件;允許指定文件擴展名。
  • untrack: 從Git LFS中移除一個文件。
  • push: 把當前監控的文件推送到Git LFS服務器。
  • status: 顯示產生改動的Git LFS對象的路徑。

如果要向現有倉庫中添加一個大文件,你可以:

git lfs track "*.pdf"
git add file.pdf
git commit -m "Add design file" git push origin master

根據GitHub官方消息,目前Git LFS服務器API的實現只有兩種: 引用服務器實現 以及GitHub.com,后者 目前還不可用 。GitHub已經公布了免費的LFS計劃,最多允許“1GB免費文件存儲空間和每月1GB流量”。容量更大的套餐需要付費,但是具體費用還未公布。

在Git LFS出現之前,開發者就已經可以使用 git-annex 管理大型二進制文件。后者是一個Git擴展,原理和Git LFS類似,把文件內容存儲在.git/annex中,而把對應位置的符號鏈接存儲在Git倉庫中。

參考英文原文: Git Large File Storage Promises to Extend Git to Large Binary Files

 本文由用戶 fdwm 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!