备份同一项目的多个 git repos(重复数据删除)

备份同一项目的多个 git repos(重复数据删除)

我使用一个中央 git 服务器(gitlab 实例)。开发人员将项目克隆到另一台服务器上的 samba 共享。目前,我备份了 gitlab 服务器和另一台服务器上的所有开发人员目录。这会占用大量磁盘空间。理想情况下,我只想备份 gitlab 服务器。我不能这样做,因为尚未推送到它的更改可能会丢失(并且我不能将备份的责任转嫁给开发人员,例如强迫他们每天推送一次所有内容)。有没有使用 git 重复数据删除的解决方案?我不确定在实际备份之前使用另一个重复数据删除系统是否可行,因为我认为当 git packfile 更改时,即使是存储库中的小更改也可能对另一个系统产生重大影响。

答案1

取决于您如何备份。如果您使用 git 进行备份,那么这很容易:为每个开发人员的存储库添加一个远程仓库,然后将git fetch它们全部添加。然后,Git 会为您进行重复数据删除,只需存储每个对象一次,无论有多少个远程仓库拥有该对象。

相关内容