web-dev-qa-db-fra.com

Changer l'emplacement du répertoire du référentiel Git.

Avec Git/Github pour Windows, si j'ai un référentiel avec ce répertoire: C:\dir1\dir2, que dois-je faire pour déplacer les fichiers de dépôt vers C:\dir1? Je peux évidemment copier et coller physiquement les fichiers, mais que dois-je faire du côté de Git?

J'ai ce dépôt sur GitHub et j'utilise Git Bash et GitHub pour Windows. 

136
user596075

Copiez simplement le contenu entier du répertoire de travail (y compris le répertoire caché .git). Cela déplacera tout le répertoire de travail dans le nouveau répertoire et n'affectera pas le référentiel distant sur GitHub.

Si vous utilisez GitHub pour Windows, vous pouvez déplacer le référentiel en utilisant la méthode ci-dessus. Cependant, lorsque vous cliquez sur le référentiel dans l'application, il ne pourra pas le trouver. Pour résoudre ce problème, cliquez simplement sur le cercle bleu avec le symbole!, Sélectionnez Trouver et accédez au nouveau répertoire.

173
ctor

Je ne suis pas sûr de la question, alors voici deux réponses:

Si vous souhaitez déplacer votre référentiel:

Copiez simplement le référentiel entier (avec son répertoire .git).

Il n'y a pas de chemin absolu dans la structure .git et rien ne l'empêche d'être déplacé, vous n'avez donc rien à faire après le déplacement. Tous les liens vers github (voir dans .git/config) fonctionneront comme auparavant.

Si vous souhaitez déplacer des fichiers dans le référentiel:

Il suffit de déplacer les fichiers. Ajoutez ensuite les modifications répertoriées dans git status. La prochaine commit fera le nécessaire. Vous serez heureux d'apprendre qu'aucun fichier ne sera dupliqué: déplacer un fichier dans git ne coûte presque rien.

31
Denys Séguret

Si vous utilisez GitHub for Windows, procédez comme suit:

  1. Fermez GitHub for Windows et toutes les autres applications avec des fichiers ouverts dans votre chemin de répertoire actuel.
  2. Déplacez tout le répertoire, comme mentionné ci-dessus, vers le nouvel emplacement.
  3. Ouvrez GitHub for Windows et cliquez sur l'icône bleue (!) "Référentiel introuvable". Ensuite, une boîte de dialogue s'ouvre et vous verrez un bouton "Trouver" où vous pouvez déplacer le nouveau chemin du référentiel.
16
Mikael Engver

Bien que la question concerne Git pour Windows, il semble que ce soit le meilleur résultat même lors de la recherche de Visual Studio Tools pour Git (extension dans VS 2012, prise en charge native dans VS 2013). 

En utilisant les solutions ci-dessus comme guide, j'ai déterminé que Visual Studio Git Tools facilitait localement le dépôt (ou même la structure de répertoires pour tous les repos).

1) Fermez Visual Studio . 2) Déplacez le (s) dossier (s) Repo vers un nouvel emplacement . 3) Ouvrez Visual Studio. Ouvrez Team Explorer. Basculer vers la vue "Connecter" (icône de fiche en haut) . 3a) Si les dépôts conservent toujours l'ancien chemin, cliquez sur Actualiser pour forcer une mise à jour . 4) Les dépôts transférés localement ne devraient plus apparaître dans "Local Git Repositories ". 5) Cliquez sur Ajouter (ni nouveau ni clone) et sélectionnez le dossier de référentiel à ajouter.

À l'étape 5, vous fournissez simplement un chemin de recherche et la recherche inclut automatiquement tous les sous-dossiers. Si vous avez plusieurs pensions organisées sous une seule racine (des pensions indépendantes ayant juste le même dossier parent), la sélection du parent inclura toutes les pensions trouvées en dessous.

Exemple: E:\Repos\RepoA E:\Repos\RepoB E:\Repos\RepoC

Dans Visual Studio Team Explorer [Ajouter]> "E:\Repos \"> [Ajouter] renverra les trois dans les référentiels locaux.

4
Gerald Davis

J'utilise le plugin git de Visual Studio, et certains sites Web sont exécutés sur IIS je voulais me déplacer Un moyen simple qui a fonctionné pour moi:

  1. Fermez Visual Studio.

  2. Déplacez le code (y compris le dossier git, etc.)

  3. Cliquez sur le fichier de solution à partir du nouvel emplacement.

Ceci actualise le mappage vers le nouvel emplacement, en utilisant les fichiers git locaux existants qui ont été déplacés. Une fois revenu dans Visual Studio, ma fenêtre Team Explorer a montré le dépôt dans le nouvel emplacement.

2
Ben

J'utilise Github Desktop pour Windows et je voulais déplacer l'emplacement d'un référentiel. Aucun problème si vous déplacez votre répertoire et choisissez le nouvel emplacement dans le logiciel. Mais si vous définissez un mauvais répertoire, vous obtenez une erreur fatale et aucune seconde chance de faire une relocalisation vers le bon. Donc, pour réparer ça. Vous devez copier les fichiers du projet dans le répertoire incorrect, puis les recréer par Github Desktop. Ensuite, vous pouvez déplacer votre projet dans un autre dossier et effectuer un transfert dans le logiciel. Pas besoin de fermer Github Desktop pour cela, il vérifiera les dossiers en direct.

En espérant que cela aidera quelqu'un.

0
Shim-Sao

Bien que les réponses précédentes semblent toutes indiquer que vous pouvez simplement déplacer le répertoire et qu'il n'y a pas de chemins absolus dans la structure .git. J'ai trouvé cela faux lors de l'utilisation de git de Cygwin.

Lorsque j'ai déplacé mon dépôt Git (en fait, je l'ai restauré à partir d'une sauvegarde, mais sur un lecteur différent, car la structure de mon lecteur a changé sur mon nouveau système). J'ai un message d'erreur comme 

fatal: Invalid path '<part_of_the_original_repo_path>': No such file or directory

J'ai utilisé grep pour trouver dans mon fichier .git/config de la section [core] une variable d'arborescence de travail contenant le chemin absolu de mon dépôt git. Changer cela a résolu le problème pour moi. 

0
Phil Rosenberg

Rapport du futur: avril 2018. 

Je voulais normaliser mon dépôt local sur mon Mac et mon Windows, qui se trouvaient dans différents dossiers locaux.

Le client Windows 10 m'a fait passer par la routine "Recherche impossible"> "Localiser", fastidieuse mais pas terrible. Vous devez également mettre à jour le "chemin de clonage" local dans Options pour une utilisation ultérieure.

Lorsque j'ai consolidé les dossiers Mac, le client Github vient de les retrouver - je ne devais rien faire!

0
charles ross

Pour définir le chemin local par défaut de vos référentiels à chaque fois que vous clonez l'un d'entre eux, vous devez seulement cloner un référentiel et définir Localpath:/votre-chemin, puis github détecte automatiquement ce chemin comme chemin par défaut.

0
BOjack

Cela n'a pas fonctionné pour moi. J'ai déplacé un repo de (par exemple) c:\project1\vers c:\repo\project1\et Git pour Windows ne montre aucune modification.

le statut de git indique une erreur car l'un des sous-modules "n'est pas un référentiel git" et affiche l'ancien chemin. par exemple. (noms modifiés pour protéger IP)

fatal: pas un référentiel git: C: /project1/.git/modules/subproject/subproject2 fatal: 'git status --porcelain' a échoué dans le sous-projet de sous-module

J'ai dû modifier manuellement les fichiers .git dans les sous-modules pour qu'ils pointent vers le chemin relatif correct vers le référentiel du sous-module (dans le répertoire .git/modules du référentiel principal)

0
Chris Oates