【问题标题】:Pushing untracked content with git使用 git 推送未跟踪的内容
【发布时间】:2010-11-26 14:43:46
【问题描述】:

我在 git 中有一个带有一堆图形(.jpg、.png、.tiff 等)的项目。图形扩展名在我的 .gitignore 中(这可以更改),因为我不需要对图形进行版本控制(负责图形的部门有版本提示并跟踪他们自己对图形的更改)。但是,当我推送时,似乎只有跟踪的内容会进入存储库。我需要将图形与存储库一起推送,但我不想跟踪图形文件,我该怎么做(或者甚至可能)?

【问题讨论】:

  • 每当图形发生变化时,您是否也要推送它们?
  • @cvondrick 是的,但我只是覆盖了图形文件——因为 git 存储库在我们的本地 LAN 上,所以只推送所有未处理的图形文件是可以接受的。我只是不想用图形来膨胀我的存档。
  • @Will -- 这是一个很好的链接。他说他的“臃肿”档案大约有 200mb……我的“臃肿”档案目前是 800mb。

标签: git push


【解决方案1】:

跟踪的文件是应该进入存储库的文件,因此如果您希望存储库中的图形,您希望它们被跟踪。

此外,虽然制作图形的部门可能会跟踪他们对文件所做的更改,但您需要跟踪您在项目中使用的图形文件,这是不同的。使用 git 为您的项目跟踪这些内容可以实现这一点。

【讨论】:

  • 我正试图防止我的存储库大小因存储二进制图形文件而膨胀。有几千个图形文件,唯一重要的是拥有这些文件的最新版本。
【解决方案2】:

即使文件被忽略,您也可以将文件添加到存储库(.gitignore 中的匹配模式)。

您只能使用 git 推送 已提交 的内容,因此您无法推送(使用 git)未跟踪的文件。您可以改用 rsyncscp 等其他机制(如果它在其他服务器上)。

【讨论】:

  • 所以也许一个 git push 后跟一个 rsync 命令来同步未跟踪的内容是最好的方法吗?这听起来并不难。
【解决方案3】:

除非被跟踪,否则您无法推送。

您是否将推送用作部署步骤?如果是这样,您要么想要跟踪图形文件以推送它们。或者您想要图形文件的单独部署步骤。就我个人而言,我只是将图形文件添加到存储库中。磁盘空间很便宜。

【讨论】:

  • +1 表示“磁盘空间很便宜”,我想说的完全一样。
【解决方案4】:

根据您的项目,如果您有大量此类图形,您可能希望将所有这些图像保存在数据库表中。这就是 BLOB 的用途。

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 2017-11-05
    • 2019-07-21
    • 2012-11-24
    • 2020-09-26
    • 2011-05-08
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多