Git: moviendo el directory .git a otra unidad, mantenga el código fuente donde está

Tengo mi código fuente y la carpeta .git en una pequeña y rápida ssd, me gustaría tener el directory .git en mi segundo disco duro más grande y mantener mi código de trabajo en mi ssd más rápido, ¿es posible? ¿cómo? Gracias.

Creo que mi directory local de copy de trabajo .git crecerá a medida que pasa el time (con las nuevas versiones) y por lo tanto, lo siento en mi hdd local más grande. La copy de trabajo no crece tan rápido, por lo que toma conciencia de la SSD, ya que puede comstackr más rápido.

La otra ventaja interesante es que tendré el código fuente (código de trabajo y .git repo) en 2 discos duros, que es más protección para una computadora portátil ….

Estoy usando Windows

Solutions Collecting From Web of "Git: moviendo el directory .git a otra unidad, mantenga el código fuente donde está"

sí tu puedes

Enlaces simbólicos

Puede enlazar simbólicamente (o usar puntos de unión) el directory .git a una location diferente:

 $ cd my/project $ mv .git /over/here/.git ln -s /over/here/.git . 

Y el repository funcionará bien.

gitdir:

O puede replace la carpeta .git con un file que le indique a git dónde está realmente la carpeta .git . Así es como los submodules de Git se configuran por defecto en la versión 1.7.8 o posterior .

Los pasos para volver a configurar una salida existente son:

  1. mover el directory .git a donde necesita estar
  2. reemplácelo por un file .git contenga: gitdir: path/to/.git
  3. definir core.worktree para apuntar a la copy de trabajo

Como un script que sería:

 $ cd my/project $ mv .git /tmp/.git $ echo "gitdir: /tmp/.git" > .git $ git config core.worktree $PWD 

Conexiones en Windows

Cree fácilmente uniones en Windows usando junction.exe de Microsoft.

 > junction.exe c:\fast-ssd\proj\.git d:\slow-hdd\proj\.git 

Es posible tener un directory de repository de Git en una location diferente a la raíz de su copy de trabajo, pero no estoy seguro de si funciona en todas las unidades.

Puede configurar el directory repo para colocarlo en un directory diferente mientras --separate-git-dir con el --separate-git-dir :

 $ git clone --separate-git-dir=<path to directory for repo> \ <remote url> <path for working copy> 

Para un repository que ya ha sido clonado, es posible que pueda establecer una ruta diferente para el repository y / o la copy de trabajo con los --git-dir=<path> y --work-tree=<path> para git .

También es posible que desee verificar la configuration de core.worktree .

En realidad, solo puedes correr

 $ git init --separate-git-dir=[path to directory for .git data] 

git init es seguro para ser utilizado dentro de un repository ya clonado

Ejecutar git init en un repository existente es seguro. No sobrescribirá las cosas que ya están allí. La razón principal para volver a ejecutar git init es recoger las templates recién agregadas (o mover el repository a otro lugar si se proporciona –separate-git-dir).

Referencia a la página de manual de Git