我在一个小的快速ssd上有我的源代码和.git文件夹,我想在我的第二个较大的较慢的硬盘上有.git目录,并将我的工作代码保存在我的快速小ssd上,是否可能?怎么样?谢谢.
我想我的本地工作副本.git目录会随着时间的推移而增长(使用新版本),因此在我更大的本地硬盘上使用它是有意义的.工作副本的增长速度并不快,因此它可以在ssd上发挥作用,因为它可以更快地编译.
另一个有趣的奖励是我将在2个差异驱动器上拥有源代码(工作代码和.git repo),这对笔记本电脑来说更具保护性....
我正在使用Windows
AD7*_*six 27
您可以将.git
dir 符号链接(或使用交接点)到不同的位置:
$ cd my/project
$ mv .git /over/here/.git
ln -s /over/here/.git .
Run Code Online (Sandbox Code Playgroud)
存储库将正常工作.
或者你可以.git
用一个文件替换文件夹,该文件告诉git .git
文件夹的确实位置.这正是版本1.7.8或更高版本中默认设置git子模块的方式.
重新配置现有结帐的步骤如下:
.git
包含以下内容的文件替换它:gitdir: path/to/.git
core.worktree
指向工作副本作为一个脚本:
$ cd my/project
$ mv .git /tmp/.git
$ echo "gitdir: /tmp/.git" > .git
$ git config core.worktree $PWD
Run Code Online (Sandbox Code Playgroud)
使用junction.exe
Microsoft 在Windows上轻松创建联结.
> junction.exe c:\fast-ssd\proj\.git d:\slow-hdd\proj\.git
Run Code Online (Sandbox Code Playgroud)
小智 12
可以将Git存储库目录放在与工作副本的根目录不同的位置,但我不确定它是否适用于驱动器.
在使用--separate-git-dir
标志进行克隆时,可以将repo目录设置为放在不同的目录中:
$ git clone --separate-git-dir=<path to directory for repo> \
<remote url> <path for working copy>
Run Code Online (Sandbox Code Playgroud)
对于已经克隆的repo,您可以使用--git-dir=<path>
和--work-tree=<path>
标志为git
repo和/或工作副本设置不同的路径.
您可能还想查看core.worktree
配置.