GIT_DIR是如何工作的?完全正确



这对我来说根本不清楚:http://git-scm.com/2010/04/11/environment.html

据我所知,我不能对单个的仓库这样做。这些命令不够清晰…

据我所知,我可以这样做:

GIT_DIR="directory here"

然而,这看起来像是Git repos的Git文件夹的全局目录。是这样的吗?

我该如何设置Git目录只用于这个repo?

谢谢你的帮助。如果它太蠢了,我很抱歉,但它真的让我很困惑。

您可以通过将.git文件夹替换为包含gitdir: <path>.git文件来重新定位任何repo的存储库文件夹。该路径将指向另一个文件夹,该文件夹将充当您的存储库文件夹。

注意:<path>包含存储库文件夹的名称,而不仅仅是.git文件夹的路径。

您可以使用它将所有存储库文件夹存储在具有唯一名称的单个位置。您仍然可以在.git文件所在的位置执行git命令。

GIT_DIR, GIT_WORK_TREE等只是环境变量,如果设置了,git会使用它们。如果你全局设置它们,它们将全局应用,可能会把一切都搞砸。如果您在执行git init时设置了它们,它将创建具有适当配置的repo,以便在env未设置后继续工作。

如果您正在使用环境变量,则必须在使用它之前为每个存储库设置它。您可以通过设置正确环境变量的特殊批处理文件启动shell/程序来实现这一点。像这样,它不会影响其他进程,因为环境变量只会为当前进程及其子进程设置。

没有永久性的方法来为磁盘上的某个文件夹分配特定的GIT_DIR值,因为没有。git目录,就没有办法存储这些信息。

最新更新