2010-01-21 5 views
2

J'ai un dépôt git sur github.Migrer le référentiel de github vers le système de fichiers local?

Je souhaite migrer la version principale du référentiel vers un système de fichiers local et cloner à partir de cette copie de système de fichiers local.

Comment procéder?

+0

Avec git tous les clones de le référentiel est équivalent. Voulez-vous dire que vous voulez deux copies du dépôt sur votre système de fichiers local, celui dans lequel vous travaillez et celui que vous poussez, ou voulez-vous tirer de cette copie locale à partir d'autres ordinateurs? – mckeed

+0

Je veux tirer de la copie locale à la fois localement et sur d'autres ordinateurs. Je veux "déplacer" mon dépôt de github vers un de mes ordinateurs. Pas de copie, déplacez. –

+0

La différence entre copier et déplacer supprime du côté original. Vous voulez dire que vous voulez copier, puis supprimez-le de github? – Cascabel

Répondre

6

Tout d'abord, créez votre nouveau référentiel en clonant votre dépôt GitHub:

git clone --bare [email protected]:<User Name>/<Project Name>.git 

Si vous souhaitez supprimer votre dépôt GitHub, allez à https://github.com/<User Name>/<Project Name>/edit. Au bas de la page, il y a un lien pour supprimer le dépôt.

ensuite configurer votre nouveau référentiel à partager:

http://www.google.com/search?q=serving+a+git+repository

Enfin, sur tous les autres clones du dépôt GitHub, changer l'url d'origine:

git remote set-url origin <new url> 
+0

En fait, vous pouvez simplement utiliser l'option --bare. Testé avec git 1.6.2, il ne crée pas la télécommande d'origine. – Dinoboff

+0

Y at-il une différence entre faire cela et cloner le dépôt, faire un changement, puis le pousser ailleurs?Est-ce que cet endroit aura tous les changements du passé comme emplacement d'origine? –

0

Il n'y a pas de référentiel «maître» lorsque vous utilisez Git, donc tout ce que vous devez faire est git clone celui de Github, puis cloner depuis votre référentiel local.

Bien sûr, vous ne pouvez pas ordonner à Github d'extraire de votre référentiel local. Vous devrez donc utiliser git push pour apporter des modifications à Github. Cependant, cela ne rend pas le référentiel Github plus autoritaire que votre référentiel local.

Lorsque vous gérez un référentiel git clone, Git configure la télécommande "origin" (voir git remote) pour pointer vers le référentiel dont vous venez de cloner. Donc, si vous avez un référentiel github G, et clonez dans un référentiel local A, puis clonez A dans un autre référentiel B, alors l'origine de B pointera sur A, pas sur G.

Vous pouvez toujours changer "origin" pointe vers l'utilisation de la commande git remote.

+0

Ce n'est pas ce que je voulais. Je veux ordonner à github de retirer de mon dépôt local. –

+0

Je doute que vous puissiez avoir du github de vous - vous ne pouvez pas exécuter des commandes de façon routinière, n'est-ce pas? Et même si vous le pouviez, n'est-ce pas un dépôt nu? – Cascabel

+2

Github ne prend pas en charge l'extraction à partir d'autres référentiels en dehors de Github. –

Questions connexes