62 votes

Déplacer un dépôt git

Cette question peut être bête, mais je me demandais pour un moment. C'est sur les dépôts git, mais je suppose que c'est la même chose pour les espaces de stockage locaux pour d'autres DVCS'.

Disons que mon projet est de ce genre quand il démarre:

  • Projet
    • .git
    • tous les autres dossiers dans le projet

Donc, c'est comment cela pourrait fonctionner quand vous le mettez en haut à droite?

Disons que je déplace le dossier de Projet ailleurs, aurais-je changer quelque chose? Ou est tous le référentiel de choses dans le .git dossier relatif uniquement dans le dossier du Projet en ignorant l'ensemble de l'arborescence de fichiers de Projet ci-dessus.

Je suis sûr que Projet de déménagement n'a pas d'importance, mais je voulais juste m'en assurer.

63voto

Brent Baccala Points 622

J'ai trouvé que les sous-modules ne sont pas relatifs dans git.

Ainsi, si vous souhaitez déplacer un projet contenant des sous-modules, vous devez éditer le fichier .git dans le sous-module, ainsi que l'attribut "arbre de travail" dans le fichier de configuration du sous-module, qui est stocké dans le fichier parent. .git/modules/MODULENAME/config fichier.

23voto

David Z Points 49476

Oui, tout en .git est relatif. Si vous avez ajouté le référentiel en tant que distant nommé à un autre référentiel, vous devrez toutefois modifier l'URL distante dans cet autre référentiel.

10voto

Eduardo Cuomo Points 1433

Afficher la télécommande actuelle (étape facultative bien sûr):

 $ git remote show origin
* remote origin
URL: git@oldserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master
 

Ce que nous devons faire, c'est supprimer l'origine actuelle et ajouter la nouvelle:

 $ git remote rm origin
$ git remote add origin git@newserver:project.git
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
error: refs/remotes/origin/HEAD points nowhere!
New remote branches (next fetch will store in remotes/origin)
master
 

Ne vous inquiétez pas de l'erreur affichée par la dernière commande. Le premier tirage de l'origine corrigera cela:

 $ git pull
From git@newserver:project.git
* [new branch]      master     -> origin/master
Already up-to-date.
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with 'git pull' while on branch master
master
Tracked remote branches
master
 

Je suis toujours en bonne voie avec Git, alors peut-être qu’il ya une meilleure façon de le faire, mais cela a fonctionné pour moi.

6voto

sehe Points 123151

Non, vous ne devriez rien changer d'autre. C'est

  • en supposant qu'aucun script ne soit défini directement par GIT_DIR, GIT_WORKTREE ou GIT_INDEX (peu probable)
  • vous n'avez aucun référentiel externe pointant vers cette copie

    • si vous le faites, vous devrez les recoller en utilisant

       git remote set-url [--push] origin user@yourhost:/home/user/newlocation/Project
       

(origine doit être le nom de la télécommande; origine est le nom par défaut lors du clonage à partir d'un référentiel distant)

1voto

Mansab Uppal Points 71

Vous pouvez déplacer le répertoire git d'une machine à l'autre ou dire que vous souhaitez migrer votre dossier de projet.

Toutes les informations au sujet de l'origine est stocké dans '.git dossier, qui est créé lorsque vous initialisez un dépôt git dans un répertoire sur votre système.

Procédure

  1. : Déplacer le dossier du projet à un autre emplacement.
  2. : Si le dossier de projet est déplacé à une nouvelle machine, puis de créer correspondant SSH à la paire de clés.
  3. : Indiquer à git qui vous êtes à l'aide de: git config --global de l'utilisateur.e-mail "your_git_email_id@votremail"

Pour obtenir des instructions détaillées, vous pouvez lire ce Post de Blog

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X