将git文件保存在另一个文件夹中

时间:2013-06-30 15:23:39

标签: git

如何设置git以跟踪文件夹~/a中的文件,但将.git文件夹存储在文件夹~/b中?

此外,为了更进一步,我可以将.git文件夹保留在另一台服务器上,并从服务器git运行a命令以检查git st例如,在服务器b上?

基本上,我希望能够在某个文件夹上使用git而不将.git目录保存在同一个文件夹中。对于我上面的第二个问题,我想更进一步,甚至不将.git目录放在同一个服务器上

谢谢!

2 个答案:

答案 0 :(得分:7)

设置GIT_DIR环境变量。

在bash中:

export GIT_DIR=~/b

或者,在PowerShell中:

Set-Item env:GIT_DIR $env:HOME\b

或者,您可以对所有--git-dir命令使用git命令行参数:

git --gir-dir=~/b status

请参阅this article about git environment variables

关于将Git存储库目录放在另一台服务器上:好吧,只要您从该服务器挂载文件系统并具有适当的权限,这应该可以正常工作。在本地目录上运行的git命令主要关心访问文件系统,因此它们只要有效就可以工作。

(澄清:上面我假设~/b git目录,如果.git~/b的子目录,则应使用{{ 1}}代替)

答案 1 :(得分:2)

另一种方法:您可以在文件中指定.git文件夹的实际路径,并将操作重定向到该文件夹​​。

例如,创建文本文件 A/.git并填写

gitdir: B/.git                # assume B is a non-bare repo

然后你可以在A中有一个工作树,它使用B中的.git文件夹。

BTW这也是git submodule的工作原理。