2009-03-23 8 views
2

Je ne pense pas que ce soit possible sans un peu de piratage mais juste en le jetant là.Déplacer le dossier .git

Dans Git, il est possible de déplacer la majeure partie du dossier .git (/ objects que je suppose) vers un autre emplacement. Je rencontre un problème sans que mon disque dur actuel ne se remplisse de git et je veux pouvoir le déplacer sur un disque dur séparé pour libérer de l'espace.

+0

Wow. Par curiosité, stockez-vous des données binaires dans git? Je suis juste curieux parce que je n'ai jamais vu un repo de git qui était plus de 100mb ou plus. –

+2

Découvrez le noyau Linux, mec. Son répertoire .git est 481 MB. :) – Bombe

Répondre

7

Il y a trois possibilités que je peux penser:

  1. La variable d'environnement GIT_DIR indique Git où chercher le référentiel. La valeur par défaut est .git, évidemment, mais vous pouvez également la définir sur /some/where/else, si vous le souhaitez.
  2. La variable d'environnement GIT_OBJECT_DIR fait de même, mais uniquement pour le sous-répertoire .git/objects, et non le référentiel entier.
  3. Vous pouvez utiliser le fichier .git/objects/info/alternates ou la variable d'environnement $GIT_ALTERNATE_OBJECT_DIRECTORIES pour "emprunter" des objets d'un autre référentiel.

Voir le git-repositorylayout(5) manual page pour plus de détails.

1

Généralement, le répertoire .git n'est pas très gros. À quand remonte la dernière fois que vous avez fait une collecte des ordures?

git gc 

Ceci nettoie les objets non référencés dans le magasin git.

2

Git dispose d'une option de ligne de commande appelée --git-dir. Chaque fois que vous exécutez git, utilisez l'option --git-dir.

git --git-dir=a_different_git_directory status 

Vous pourriez peut-être mettre cela dans un fichier batch ou quelque chose pour vous faciliter la vie.

+1

cela vaut la peine de noter que vous devez ajouter un_different_git_directory à votre fichier .gitignore. –

Questions connexes