所有git repos在工作目录中创建.git文件夹都可以更改此文件夹位置。
答案 0 :(得分:9)
您可以告诉Git在创建存储库时在其他地方创建.git
目录:
git init --separate-git-dir=/path/to/dot-git-directory .
git init
用于创建新的本地存储库,但您也可以在现有存储库中运行git init
以重新初始化其某些属性。 .git
目录的位置就是其中之一。
在现有存储库中运行
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
文件,那么有两种解决方案,但两者都不方便:
--git-dir=/path/to/dot-git-directory
参数传递给所有 Git命令; GIT_DIR=/path/to/dot-git-directory
。第一个选项需要大量输入,并且您的Git命令变得很长且难以阅读。
第二个选项使得难以使用多个存储库。每次要在不同的存储库中工作时,都必须记住使用正确的路径设置$GIT_DIR
环境变量;否则你会搞砸了。
答案 1 :(得分:0)
这是我从给定的.git目录重新建立的窍门。
将.git目录移动到所需目录。如果在新目录中“ git status”,您将看到一切都处于删除状态。诀窍是“ git隐藏”所有删除内容,同时,所有内容将自动重新安装/从.git目录中移出。因此,新目录是一个全新的git工作存储库。