如何存储废弃项目的git repos?

Mar*_*ing 5 git

我的工作站上有 200 多个项目,每个项目都是一个 git 存储库。它们中的大多数被取代或以其他方式放弃。我仍然保留代码,以防我需要他们提供的任何东西。

目前,活动项目是 中的非裸 git 存储库~/Projects,非活动项目是.tar.gz仅包含同一文件夹中整个非裸 git 存储库的档案。所以我得到了以下信息:

  • ~/Projects/some-active/.git
  • ~/Projects/some-inactive.tar.gz

这样做的好处是备份非常快,不活动的项目只是一个必须检查/复制的文件。每当我想查看项目时,我都必须提取文件夹,查看它并在一段时间后当我认为该项目再次处于非活动状态时对其进行压缩。

有没有更好的方法呢?

use*_*686 5

第一个建议:保持它们与活动存储库相同的方式,除了确保所有对象都在一个包文件中(git gc会这样做)。rsync 主要只是检查修改时间;如果其他所有内容都匹配,它不会读取整个文件;它不应该很慢。(我的备份包括 rsyncing 超过 100 万个文件,其中许多是 Git 存储库,它的速度仍然可以接受...)

第二个建议:将它们保留为存储库。每当您想查看文件时,请使用tig的“树浏览器”模式,或克隆到 /tmp(例如git clone -s ~/Projects/foo.git /tmp/foo)。这样,每个 repo 将只有大约 5 个文件(packfile、pack index、config、packed-refs)。