如何从其工作目录中分离本地git存储库?

时间:2010-08-16 16:19:19

标签: git timeout git-svn performance

这可行吗?

我希望在另一个驱动器上有.git目录,而不是checkout目录。 我无法找到解决这两种方法的方法。

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

我不想,但如果没有更好的建议,我会用本地git存储库替换它,并在慢速驱动器的两个方向上rsync'结帐目录。

我打赌你有更好的主意!

2 个答案:

答案 0 :(得分:4)

你可以set the GIT_DIR environment variable

  

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

如果因任何原因设置环境变量是不可行的,您可以将--git-dir option与任何git命令一起使用:

--git-dir=<path>
     

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

答案 1 :(得分:2)

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

如果由于某种原因你必须拆分驱动器的repo,为什么不在一个驱动器上创建repo,将.git目录移动到另一个驱动器,然后在repo中将符号链接.git移动到重定位的.git目录。