2009-09-08 111 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的用途。