2016-07-10 19 views
-1

基本上,我從psd到tiff是一個設計公司的大量圖形文件。我們實際上處理這些文件中的每一個,並保留它的每個版本,從而構建龐大的庫存。爲例如說。我們有一個名爲abc.psd的文件,就像10 MB一樣,然後我們做一些編輯並將其保存爲abc1.psd,這就像20 MB,這意味着10 MB原始+ 10 MB的新編輯,並繼續,直到我們有時超過500 MB最終文件與舊版本一起佔用GB空間。Git集線器像本地存儲和大型圖形文件的軟件?

我從Gits中瞭解到(作爲編碼的初學者),它只需要10MB的額外編輯,而存儲作爲新版本,然後從原始文件中調用較舊的10MB。是否有人能夠更好地解釋這一點?

是管理文件git適合我。如果是的話,哪個軟件正好考慮以下標準。

  1. 我的回購是私人的,所以我想要在公共回購中主持。
  2. 它應該能夠處理大文件。
  3. 我想要在雲上託管它。相反,我希望它能放在我的一臺PC上,可以作爲我的服務器,就是這樣。

我遇到了一個名爲GIT LFS的東西,但是想知道如果那是可以的私人回購,並且它適合管理文件只在本地而不是遠程。

有人可以建議我可以採用的最佳工作流程。這將是一個很大的幫助。

回答

1

像git這樣的版本控制系統通常會根據版本差異存儲多個版本的文件。例如:

文件V1

cat 
    dog 
    cow 
    sheep 

文件V2

cat 
    cow 
    sheep 
    camel 

文件V1到V2差設置:

delete line 2 
    insert line "camel" after line 4 

足夠大的文件和/或足夠小的差異,存儲在文件的版本上,其他版本的差異集將比存儲所有c的空間佔用更少的空間完整的版本。

現在...這個工作,版本控制系統需要計算一個文件的版本之間的差異的有效途徑:

對於文本文件,很容易計算出差異。例如。

  1. 拆分的文本文件轉換成線
  2. 計算散列每行
  3. 跟蹤哪些行已被添加/移除/通過比較散列的列表改變。

對於二進制文件,如圖像,很難計算差異,特別是如果圖像文件已被壓縮。如果沒有有效的計算差異的方式以及表示它們的有效方式,典型的版本控制系統必須將每個版本的二進制文件存儲爲完整文件。當您將圖像,庫或可執行文件檢入版本控制時,會發生這種情況。

GIT中的大文件(文本或二進制文件)的另一個問題就是您的本地回購將包含文件的副本,無論您是否需要它。這對於大文本文件來說是不好的,對於有很多版本的二進制文件來說更糟。

GIT-LFS所做的是用你的「repo」中的大(二進制或文本)文件替換爲其他地方存儲的大文件副本的鏈接。這有助於你做一個「git克隆」。您不會在本地回購中獲得所有版本二進制文件的副本。但是他們仍然需要存儲在某個地方,而且這個地方必須可以訪問。


我碰到一些所謂的GIT LFS但不知道如果多數民衆贊成確定爲私人回購,如果它僅適用於本地和遠程不能管理文件。

是的,這是可以的私人回購,雖然你需要一個單獨的存儲位置爲您的大文件。

如果你所有的大文件都存儲在本地,這並沒有什麼幫助。但是,如果您可以將大文件存儲在本地文件服務器上,而不是在每個用戶的本地存儲庫中都有副本,那將是一場勝利。但另一方面,現在備份本地文件服務器更爲重要......因爲它包含舊版本大文件的唯一副本。

此外,GIT LFS不會刪除保留所有版本圖像文件的完整聯機副本的需要。

+0

- 是的,這正是我們正在研究的內容,將整個數據存放到一臺可以充當服務器和其他用戶的PC上(這正是現在正在做的事,但沒有github),但只是想清楚 - GIT LFS會有所作爲嗎?它會存儲版本或像Github這樣的整個文件的差異。還有,如果你可以詳細說明「... GIT LFS不會刪除...圖像文件」。這是否意味着必須擁有在線存儲或可選。 –

+0

1)你在想什麼? 2)否。它不會存儲圖像版本之間的差異。 3)是...所有版本的在線存儲是強制性的,如果你想檢索它們。 (除非您有HSM - 分層存儲管理 - 系統透明地處理磁帶遷移<->)。 –

相關問題