全球最大的開源程式碼代管平臺GitHub,近日釋出Git的擴充功能 Git LFS(Large File Storage),讓開發者更容易在Git上進行大型檔的版本控管,Git LFS的作法是,用一個可以指向檔案實際儲存位置的指標文件(text pointers)來儲存,而不用真的把原本大型檔案的內容放上Git。

GitHub在部落格上表示,儘管Git的分散式版本控制系統已經可以有效支援開發者的工作流程,不過當要上傳大型的檔案時,可能無法每次都那麼順利,因為在預設情況下,Git會壓縮並儲存所有後續的二進位檔案版本,而這些將佔用掉很大的儲存空間,過去也有Git使用者曾反應,Git不適合上傳太大的檔案。

新釋出的Git LFS也是一個開源項目,可以將聲音檔、影片檔、資料集及圖像等大型的二進位檔案,用一個文字指標(text pointers)來儲存,使用者透過text pointers可以直接指向儲存在遠端伺服器的大型二進位檔。這個text pointers會儲存在Git上,包含檔案資訊及檔案存放路徑的指標位置等,而這個大型檔案的檔案內容則儲存在像是GitHub.com或GitHub Enterprise伺服器,不用真的放在Git上。

Git LFS特點是能讓開發者在Git上進行大型檔的版本控管,並藉由外部檔案儲存系統,使用者在Git上管理更多可用的儲存庫( repository )空間。

此外,可以更快複製或提取儲存庫中的大型檔案,同時,使用者可以延續原有的Git使用習慣和工作流程,不需要額外增加新指令、其他儲存系統或是工具集。

目前,Git LFS只開放給部分用戶使用,想搶先使用的用戶可先到官網上註冊,不過這項免費的服務只提供1GB的檔案儲存空間,而每個月的頻寬配額為1GB,若用戶有更高的使用需求,則需要額外付費。

而在GitHub釋出Git LFS之前,另一個提供程式碼託管的GitLab,也為了要改善大型檔案版本控制的效能問題,推出了開源的Git Annex,使用類似的方式,透過符號連結(symbolic link)來連到外部儲存空間上的大型二進位檔,解決大型檔的版本控制問題。


Advertisement

更多 iThome相關內容