還沒使用git之前,二進(jìn)制文件和源代碼分成兩塊,分別存放到不同的svn倉(cāng)庫(kù)上(防止二進(jìn)制文件中有病毒感染服務(wù)器,所以做了這種隔離)。
現(xiàn)在公司已經(jīng)切換到git上進(jìn)行版本管理了,那么就可以使用git lfs來管理這些二進(jìn)制文件,這樣就可以讓源碼和二進(jìn)制文件和諧共存于一處,從而不像以前那樣,需要分別做兩次更新。
Git LFS的簡(jiǎn)單理解
LFS其實(shí)是git的一個(gè)擴(kuò)展,并沒有改變git的工作方式,有點(diǎn)像耍了個(gè)小花招,把指定需要lfs管理的文件替換成了一個(gè)指針文件交給git進(jìn)行版本管理;
在pull/push等這些操作中,lfs又通過lfs服務(wù)器把這些文件的真身給下載或上傳回來;
通過這樣的手段,使得本地倉(cāng)庫(kù)的體積大大減小,而不會(huì)出現(xiàn)隨著這些文件的版本增多而體積劇烈膨脹的情況;
個(gè)人覺得這種把存儲(chǔ)負(fù)擔(dān)轉(zhuǎn)移給了服務(wù)器的做法,是不是有違git去中心化的理念,畢竟lfs這樣做其實(shí)算是強(qiáng)依賴于這個(gè)lfs服務(wù)器了,本地倉(cāng)庫(kù)并不是一個(gè)完整的倉(cāng)庫(kù)
安裝
Windows下常用的Git for Windows和Source Tree都已經(jīng)集成了lfs,不需要另外安裝了,可以運(yùn)行命令git lfs查看
首次使用
第一次使用前需要運(yùn)行下 git lfs install,只要運(yùn)行一次,以后都不需要了
日常使用
需要用lfs管理的文件要添加到追蹤列表里,一般而言,把某個(gè)類型的文件統(tǒng)一用lfs管理會(huì)是個(gè)好注意,例如我們把dll文件用lfs管理git lfs track '*.dll'
此時(shí),倉(cāng)庫(kù)的根目錄下會(huì)自動(dòng)創(chuàng)建.gitattribute文件,里面就記錄了使用lfs的文件
后續(xù)添加新的類型可以用git lfs track命令,也可以直接編輯.gitattribute文件
注意:.gitattribute文件需要添加到git倉(cāng)庫(kù)中進(jìn)行版本管理
文件追蹤之后,后續(xù)的所有操作都是和git的普通操作一致了
輔助命令
git lfs ls-files:查看當(dāng)前有哪些文件是使用lfs管理的