代码之家  ›  专栏  ›  技术社区  ›  jdehaan

如何将本地Git存储库与其工作目录分离?

  •  1
  • jdehaan  · 技术社区  · 15 年前

    这是可行的吗?

    我想要 .git 签出目录以外的其他驱动器上的目录。 我找不到一种方法把两者分开。

    原因是:在一个非常慢的网络驱动器和有限的空间上有一个交换区域,这是一个超时的真正噩梦。至少可以以足够快的速度完成存储库操作(与SVN存储库同步),以避免超时,并且可以在签出后以较差的性能完成文件复制。我找不到任何办法来应付这种情况(这是我无法控制的)

    我不想这样做,但是如果没有更好的建议,我将用本地Git存储库替换它,并在慢速驱动器的两端同步checkout dir。

    我敢打赌你有更好的主意!

    2 回复  |  直到 15 年前
        1
  •  4
  •   Mark Rushakoff    15 年前

    你可以 set the GIT_DIR environment variable :

    如果 $GIT_DIR 设置环境变量,然后为存储库的基础指定要使用的路径,而不是./.git。

    如果由于任何原因无法设置环境变量,则可以使用 --git-dir option 使用任何git命令:

    --git-dir=<path>
    

    设置存储库的路径。这也可以通过设置git_dir环境变量来控制。它可以是到当前工作目录的绝对路径或相对路径。

        2
  •  2
  •   Cascabel    15 年前

    我真的建议你 整个的 回购您的首选驱动器。然后,您可以将一个空的回购放在超越您的控制驱动器上,并推动它。这是最小化与坏存储的交互的最佳方法。

    如果出于某种原因 必须 在多个驱动器之间拆分一个repo,为什么不在一个驱动器上创建repo,将.git目录移动到另一个驱动器,然后将repo中的symlink.git移动到重新定位的.git目录。