Comment renommer le dossier racine de git?

85

Je viens de commencer à utiliser git dans Vista, avec mon référentiel sous /path/to/project/git repo.

J'ai maintenant trouvé que l'espace dans le nom du dossier est une irritation mineure lorsque vous travaillez dans git bash.

Puis-je simplement renommer le dossier en /path/to/project/gitrepo? Tout est-il relatif dans git config ou y a-t-il quelque chose qui fait explicitement référence au dossier parent?

J'ai juste essayé de prendre une copie Windows du dossier principal et d'exécuter git bash dessus, et 'git log' montre les modifications que j'avais apportées précédemment. Je suppose donc que renommer le dossier principal est OK, mais je voudrais être sûr avant d'aller plus loin.

Mick O'Hea
la source

Réponses:

53

Pour modifier légèrement la réponse de Greg , oui, tout ce qui a un dépôt git est relatif au répertoire parent, mais:.git

(et cela ne vous affectera probablement pas directement, je ne mentionne ces raisons ici que par souci d'exhaustivité.):

  • le chemin du dépôt lui-même pourrait être référencé par d'autres services exécutés sur votre ordinateur (Apache, ssh, un autre dépôt déclarant votre dépôt comme distant, en utilisant le chemin complet du fichier, une couche gitolite déclarant vos dépôts dans un certain chemin, ... )
  • certaines opérations utilisent le chemin complet du dépôt (comme l' GIT_INDEX_FILEutilisation dans une filter-branchcommande par exemple, voir ce thread ), donc, évidemment, ne renommez pas le répertoire racine tout en effectuant une opération complexe sur votre dépôt.

De plus, une "copie Windows" (au lieu d'une git clone) copiera tout, y compris les hooks, qui peuvent inclure un chemin absolu dans leur script si vous les avez édités et fait ce genre de modification.

VonC
la source
2
donc si quelqu'un a des étapes pratiques et explicites à faire, ce serait très exploitable.
ahnbizcad
@gwho quelle étape, à côté de renommer le dossier de dépôt?
VonC
88

Oui, il est prudent de renommer le dossier contenant un référentiel Git. Tous les chemins à l'intérieur du référentiel Git sont relatifs.

Greg Hewgill
la source
4

Veuillez d'abord vérifier les commentaires ...

À mon avis, le mieux est d'utiliser le workflow git , en particulier lorsque vous utilisez un serveur git (référentiel maître distant), ce qui signifie:

  • obtenir l'ancien répertoire de synchronisation avec votre serveur git ( git pull, git pushet enfin git statuspour voir si tout va bien)
  • git clone <former directory> <new directory>

(Puisque je suis également nouveau sur GIT, ce n'est peut-être pas la réponse complète et correcte. J'ai eu la même question que Mick et à des fins d'apprentissage, j'ai essayé de le faire de la manière git :) Merci pour l'indice, vonC! Veuillez me corriger, si nécessaire :)

PythoNic
la source
1
Si vous git clone <former directory> <new directory>, vous n'avez pas besoin de créer le <new directory>premier. Le git clonecréera pour vous.
VonC
3
Je ne pense pas que ça fasse ce que tu veux. Cela définit l'origine de <new directory>à <old directory>. Donc, un git remote -vin <new directory>montrerait origin C:/old/directory.
kvu787
1
Je suis d'accord avec @ kvu787, cela ne ressemble pas à ce qui est demandé et causera probablement des tonnes de problèmes.
alkanen
@ kvu787 @alkanen, ça aide, ce qu'un utilisateur a suggéré: git remote rm origin- pour supprimer votre ancien répertoire comme origine de votre nouveau représentant et - cd .. and rm -rf <former directory>pour supprimer l'ancien répertoire
PythoNic
@PythoNic, si l'ancien repo avait une télécommande nommée "origin", alors non, ce ne serait pas correct car votre nouveau dépôt n'aurait plus cette télécommande. Sinon, ce serait bien, mais renommer le dossier serait plus simple.
kvu787
0

oui, vous pouvez le changer. votre dépôt est toujours dirigé vers votre git .. il suffit de ne pas supprimer / modifier le nom de .git fo

Akshay Kumar
la source