【问题标题】:Git bare - what to backup?Git 裸机 - 要备份什么?
【发布时间】:2011-05-29 11:26:16
【问题描述】:

很抱歉,如果这在其他地方有所涉及,但我找不到答案。

我有一个名为 bare.git 的裸仓库,它是从中克隆开发仓库的仓库。这一切都很好。

我想知道 bare.git 从哪里获取源文件。它们是否作为二进制文件存储在 bare.git 文件结构中?我可以将 bare.git 移动到另一个位置并仍然从中克隆 repos,因此源必须在某种程度上是可移植的。还是存储对文件的绝对网络引用?

我想知道这些信息的主要原因有三个:

  1. 我们需要知道要备份什么。
  2. 我的老板想知道源代码到哪里去了。
  3. 我们需要一个当前的复合版本进行测试。

【问题讨论】:

  • @YourBoss - 神奇的源代码精灵吃了它。
  • Git 在普通克隆中的 .git 或裸存储库中的 repository.git 中有一种数据库。裸存储库没有签出文件(这是裸存储库的定义),因此源文件都在“数据库”中,在 objects/??/* 或 objects/pack/* 中。您必须备份整个 bare.git。
  • @Paddy - 你的意思是 gits 吃了它?

标签: git backup git-bare


【解决方案1】:

您的源文件作为索引的一部分存储在 bare.git 文件结构中,这与您在任何克隆中的 .git 目录中的相同。

所以,最好备份完整的bare.git。

您可以通过克隆您的裸仓库获得当前版本进行测试。

【讨论】:

    【解决方案2】:

    你为什么备份所有的repo?

    参见The Git Object ModelHow Git Stores Objects

    【讨论】:

    • 嗯,我不知道 repo 是否包含源代码或只是差异,因此我的问题。好的链接 - 我没有找到那些。
    【解决方案3】:

    备份整个 bare.git 文件夹不要错过,以后可以随时克隆它。

    当你想测试源代码时,你需要克隆它。文章Using Git to manage a web site 向您展示了一种处理问题的方法,即在每次推送到bare.git 后检查整个repo,当然,这是自动的。这段代码是您应该测试的(除非您想在推送到 bare.git 之前在 pre-commitpre-receive 中进行测试。

    【讨论】:

    • 感谢您的链接 - 非常有用
    猜你喜欢
    • 2012-12-03
    • 2014-04-21
    • 2018-08-26
    • 2015-06-07
    • 2012-08-09
    • 2016-02-28
    • 1970-01-01
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多