【问题标题】:How to separate/decouple git repository into a different location如何将 git 存储库分离/解耦到不同的位置
【发布时间】:2013-03-10 15:33:43
【问题描述】:

我的请求可能看起来很奇怪,但在我解释我为什么这样做之后会更有意义。

所以我在/path/to/myprojects 下有我的个人项目。下面可能是 C、Perl、Shell、Tcl 等。现在我想将这些项目组(C、Perl 等)放在 git 下,但在不同的位置,例如 /path/to/mygits/

我想这样做的原因是,传统上我先通过 rar 将我的 /path/to/myprojects 备份到其他位置。由于它们都是基于文本的,因此将它们 rar 起来将产生出色的压缩比。现在我想保持同样的做法,即使我已经引入了 git。因此,我需要将二进制 git 存储库远离我的文本基础文件夹,放到一个单独的二进制基础文件夹中。

我在 stackoverflow 上的所有发现都表明不可能,或者我“必须使用可能非常痛苦的子模块”: Git: Different Working Directory and Repository location, git repository with folders in different locations, Add Separate Directories/Projects/Files to Git Repository

但是,有一个答案说可以将 git 工作目录和 git 存储库目录解耦: how do I change the location of a Git repository 但它说了一些关于git reset --hard 的信息,我想知道细节。

另外使用GIT_DIR 似乎是另一种解决方案。

有人可以帮忙吗?

谢谢

【问题讨论】:

  • stackoverflow.com/questions/505467/… 可能会有所帮助。
  • @DCoder,谢谢!这正是我正在寻找的。请回答不是,以便我投票。谢谢!
  • 一件事:随着时间的推移,git 的压缩会大大增加,有点令人不安,几乎神奇地比 rar 的要好,将你的 rar 备份的总大小加起来,然后与你的大小进行比较在你告诉它你关心 (git repack -Ad; du -sh .git) 之后,它包含所有相同的数据。在 github 上托管克隆或将存档放在 Dropbox 或 google 文档或任何地方,其中任何一个都比您现在执行的备份更安全、更方便。
  • 谢谢@jthill。我的个人项目只是一个例子。还有更多我不太关心他们的历史的文本文件。正如你所建议的,我只是将 git 用作异地备份的一种手段。

标签: linux git repository backup


【解决方案1】:

好吧,等够了,让我回答我自己的问题。 正如 DCoder 所指出的,答案在Can I store the .git folder outside the files I want tracked?

即,那里列出了许多基于 git 的解决方案,都需要一些额外的 git 配置。如果在 Windows 下,您可能必须这样做。但是,在 Linux 下,将 .git 目录符号链接到其他地方是最简单和最干净的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 2014-01-18
    • 2023-04-06
    • 2015-10-21
    • 1970-01-01
    • 2010-11-14
    • 2016-03-12
    相关资源
    最近更新 更多