如何设置 git 来跟踪文件夹中的文件~/a
,但将文件夹存储在.git
文件夹中~/b
?
另外,为了更进一步(巨大的)一步,我可以将.git
文件夹保留在另一台服务器上并git
从服务器运行命令a
以检查git st
例如,在服务器上b
吗?
基本上,我希望能够在某个文件夹上使用 git 而无需将.git
目录保留在同一个文件夹中。对于我上面的第二个问题,我想更进一步,甚至不将.git
目录保留在同一台服务器上
谢谢!
如何设置 git 来跟踪文件夹中的文件~/a
,但将文件夹存储在.git
文件夹中~/b
?
另外,为了更进一步(巨大的)一步,我可以将.git
文件夹保留在另一台服务器上并git
从服务器运行命令a
以检查git st
例如,在服务器上b
吗?
基本上,我希望能够在某个文件夹上使用 git 而无需将.git
目录保留在同一个文件夹中。对于我上面的第二个问题,我想更进一步,甚至不将.git
目录保留在同一台服务器上
谢谢!
设置GIT_DIR
环境变量。
在 bash 中:
export GIT_DIR=~/b
或者,在 PowerShell 中:
Set-Item env:GIT_DIR $env:HOME\b
或者,您可以--git-dir
在所有命令上使用命令行参数git
:
git --gir-dir=~/b status
关于将 Git 存储库目录放在另一台服务器上:好吧,只要您已从该服务器挂载文件系统并具有适当的权限,那应该可以正常工作。在本地目录上运行的 git 命令主要关心访问文件系统,因此只要它有效,它们就可以工作。
(澄清一下:上面我假设~/b
是git 目录,如果.git
是 的子目录~/b
,你应该~/b/.git
改用)
另一种方法:您可以指定.git
文件中文件夹的真实路径,并将操作重定向到它。
例如,创建一个文本文件 A/.git
并用
gitdir: B/.git # assume B is a non-bare repo
然后你可以在 A 中有一个工作树,它使用.git
B 中的文件夹。
顺便说一句,这也是如何git submodule
工作的。