你能改变.git文件夹的位置吗?

时间:2016-11-12 09:00:44

标签: git

所有git repos在工作目录中创建.git文件夹都可以更改此文件夹位置。

2 个答案:

答案 0 :(得分:9)

您可以告诉Git在创建存储库时在其他地方创建.git目录:

git init --separate-git-dir=/path/to/dot-git-directory .

git init用于创建新的本地存储库,但您也可以在现有存储库中运行git init以重新初始化其某些属性。 .git目录的位置就是其中之一。

documentation说:

  

在现有存储库中运行git init是安全的。它不会覆盖已存在的东西。重新运行git init的主要原因是选择新添加的模板(或者如果给出--separate-git-dir,则将存储库移动到另一个地方。)

Git使用.git选项作为参数提供的名称重命名--separate-git-dir目录。在工作目录中,它放置一个名为.git的文件,而不是.git目录。 .git文件包含实际.git目录的位置。

如果要将.git目录放回工作目录中,您只需删除.git文件并放入.git目录即可。 git init --separate-git-dir显然不能用于此。

如果您根本不想在工作目录中拥有.git目录或.git文件,那么有两种解决方案,但两者都不方便:

  1. --git-dir=/path/to/dot-git-directory参数传递给所有 Git命令;
  2. 设置环境变量GIT_DIR=/path/to/dot-git-directory
  3. 第一个选项需要大量输入,并且您的Git命令变得很长且难以阅读。

    第二个选项使得难以使用多个存储库。每次要在不同的存储库中工作时,都必须记住使用正确的路径设置$GIT_DIR环境变量;否则你会搞砸了。

答案 1 :(得分:0)

这是我从给定的.git目录重新建立的窍门。

将.git目录移动到所需目录。如果在新目录中“ git status”,您将看到一切都处于删除状态。诀窍是“ git隐藏”所有删除内容,同时,所有内容将自动重新安装/从.git目录中移出。因此,新目录是一个全新的git工作存储库。