2009-09-08 58 views
0

我有一堆圖形(.jpg,.png,.tiff等)在git中有一個項目。圖形擴展名位於我的.gitignore(這可以更改),因爲我不需要對圖形進行版本(負責圖形的部門具有版本提示並跟蹤它們自己對圖形的更改)。但是,當我推送時,似乎只有被跟蹤的內容纔會進入存儲庫。我需要將圖形與存儲庫一起推送,但我不想跟蹤圖形文件,我該怎麼做(或甚至有可能)?用git推動未跟蹤的內容

+0

每當圖形發生變化時,是否也要推它們? – carl 2009-09-08 19:05:55

+0

@cvondrick是的,但我只是覆蓋圖形文件 - 因爲git存儲庫位於我們的本地局域網上,只需推送所有未經處理的圖形文件就可以接受。我只是不想用圖像膨脹我的檔案。 – Mica 2009-09-08 20:24:20

+0

試試看http://stackoverflow.com/questions/250238/collapsing-a-git-repositorys-history – 2009-09-08 21:49:50

回答

2

您可以將文件添加到存儲庫,即使它們被忽略(匹配.gitignore中的模式)。

你只能用git推送什麼comitted,所以你不能推(使用git)未跟蹤的文件。您可以使用其他mechanizm像rsync的SCP代替(如果是其他服務器上)。

+0

所以也許一個git push跟着一個rsync命令來同步未跟蹤的內容將是最好的方法呢?這聽起來不太難。 – Mica 2009-09-08 22:41:42

8

跟蹤文件是應存放在存儲庫中的文件,因此如果您想要存儲庫中的圖形,則需要跟蹤它們。

此外 - 雖然執行圖形的部門可能會跟蹤他們對文件所做的更改,但您需要跟蹤您在項目中使用的圖形文件,這是不同的。使用git跟蹤你的項目的完成。

+0

由於存儲二進制圖形文件,我試圖讓我的存儲庫大小不致膨脹。有幾千個圖形文件,只有這些文件的最新版本才重要。 – Mica 2009-09-08 20:37:07

2

除非跟蹤它,否則無法推送。

您是否使用推送作爲部署步驟?如果是這樣,你要麼追蹤圖形文件來推動它們。或者你想爲圖形文件單獨部署一個步驟。我個人只是將圖形文件添加到回購。磁盤空間很便宜。

+1

+1「磁盤空間很便宜」,我打算說完全一樣的東西。 – 2009-09-08 21:52:59

0

根據您的項目,如果您有大量這些圖形,您可能希望將所有這些圖像保存在數據庫表中。這就是BLOB的用途。