Type a keyword and hit enter to start searching. Press Esc to cancel.

Currently Reading | 正在閱讀

如何版本控管你的大型設計檔? How to version-control your large-sized digital assets with Git LFS

簡介

當設計師在寫HTML,CSS時,可以使用git來做版本控制, 因為是text file可以很清楚地從diff看出檔案前後的差別

sketch也有它自己的版本控制系統,這就不多說了

然而,設計師在photoshop, illustrator等軟體設計版面時

常常能使用的版本回復無非是內建的redo, undo和history panel

只能回復到一定的程度,而且關掉檔案所有的回復功能就不見了

難道就沒有一個像git 管控text file and binary file一樣好用的版本控制系統嗎?

不用擔心,往往有問題就有人想辦法解決

在前公司工作時,會使用一個叫pixelapse的web app來做版本控制

但自從pixelapse被dropbox收購後,因為dropbox的大小限制等並不是特別令人滿意

我就不常在設計檔使用版本控制了

而psd, ai檔的檔案大小動輒10MB,最大有時候會到幾百MB

儘管git本身就可以針對大型檔案做版本控制,但檔案大小,傳輸等效率都很差

而最近github, bitbucket等open source contributor推出了一個git的新的擴充功能叫Git Large File Storage (LFS)

專門針對大型影音檔,設計檔等作版本控制

其原理簡單的說就是將大型檔案用一個pointer來reference,並將大型檔案放在專門的remote Git LFS store (當你git push時)和local Git LFS cache上

當你使用git checkout想要回復到歷史上某一個檔案時,pointer就會指向該檔案然後幫你調出來或git pull出該檔案

很是方便!

下面就來說明如何安裝和使用Git LFS

安裝和使用

1. 通過homebrew run brew install git-lfs, 這是安裝git command line extension(上面的link有教別的安裝方式), 然後run git lfs install(這個只需安裝一次)然後會顯示Git LFS initialized.

2. 按照一般git repository的建立方式,git init你的local repository (必須先initialize repo否則下面的track command會無效),記得建立local repo後還需要在run一次git lfs install, 讓Git LFS aware這個repo, 具體code如下

# initialize Git
$ mkdir Folder-to-track
$ cd Folder-to-track
$ git init
Initialized empty Git repository in /Users/Ethan/Folder-to-track/.git/

# initialize Git LFS
$ git lfs install
Updated pre-push hook.
Git LFS initialized.

3. 接著,選擇你想要track的檔名file extension,例如你想要track psd和png檔,就輸入 git lfs track "*.psd"git lfs track "*.png" (雙引號一定要有很重要),個人是直接*.*全部track lol

4. 然後就是一般如何track git檔案的順序, git status / git add / git commit等等,網路很多教學就不多說 (這邊會有一個檔叫.gitattributes記得要加入, 這個檔案的作用就是紀錄第3步的file pattern)

5. 當你對同一個設計檔修改三到四次並每次都有commit之後,你可以開始試著回復某一個檔了(下一步很重要)

6. 使用git checkout回到某一個commit(設計檔)之後, 當你試著打開該檔案時,會發現原本很大的psd檔案(ex. 100MB)只剩下130~133byte了,然後會發現竟然打不開 ,出現下圖這樣的窘境

7. 不要害怕,我第一次使用也卡了很久想半天到底怎麼了,難道檔案壞掉了??

原來當你試著checkout時,原本很大的psd檔瞬間變成了pointer了,如果要叫回可以打開的原本的psd檔,需要在terminal輸入git lfs pull

讓git lfs去從local Git LFS cache去調出該檔案,然後你會發現不能打開的檔案就變成了你所request的歷史檔了~~

Reference

https://git-lfs.github.com/

https://www.atlassian.com/git/tutorials/git-lfs/

 

 

希望我的文章對你有幫助 ^^

Did you learn something from my article? I do hope so.:)

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *