web-dev-qa-db-fra.com

Différence entre git remote add et git clone

Que fait la commande clone? Y a-t-il un équivalent dans svn?

Quelle est la différence entre

git remote add test git://github.com/user/test.git

Et

git clone git://github.com/user/test.git

Le nom du dépôt créé est-il important?

61
nacho4d

git remote add crée simplement une entrée dans votre configuration git qui spécifie un nom pour une URL particulière. Vous devez avoir un dépôt git existant pour l'utiliser.

git clone crée un nouveau référentiel git en copiant un référentiel existant situé à l'URI que vous spécifiez.

59
Jason LeBrun

Ce sont fonctionnellement similaires (essayez-le!):

 # git clone REMOTEURL foo 

et:

 # mkdir foo 
 # cd foo 
 # git init 
 # git remote add Origin REMOTEURL 
 # git pull Origin master 

Maintenant, il y a des différences mineures, mais fondamentalement, vous ne les remarquerez probablement pas. Comme exercice laissé au lecteur, comparez les .git/config de chaque répertoire.

46
Wes Hardaker

La commande clone crée une copie locale du référentiel que vous avez spécifié. remote add ajoute un référentiel distant à partir duquel vous pouvez pousser ou tirer.

L'équivalent svn de clone est checkout.

9
Rafe Kettler

git clone:

Télécharge physiquement les fichiers sur votre ordinateur. Cela prendra de la place sur votre ordinateur. Si le dépôt est de 200 Mo, il téléchargera tout cela et le placera dans le répertoire que vous avez cloné.

git remote add:

Ne prendra pas de place! Cela ressemble plus à un pointeur! Cela n'augmente pas la consommation de votre disque. Cela donne juste un aperçu des branches disponibles et de leur historique de validation git, je crois. Il ne contient pas les fichiers/dossiers réels de votre projet.

Si tu fais:

git remote add TechLeadRepo  git://github.com/user/test.git

alors vous n'avez rien ajouté à votre ordinateur. Après l'avoir ajouté dans vos branches distantes, vous pouvez obtenir une liste de toutes les branches de cette télécommande en faisant:

git fetch --all

Et puis, si vous vouliez faire entrer la branche feature22 de votre collègue dans votre section locale,

git checkout -b myLocalFeature22 TechLeadRepo/feature22

Je crois qu'après avoir effectué un paiement, cela entraînerait les dernières modifications et prendrait de la place sur votre ordinateur. Évidemment, cela ne prendra de la place que pour tous les nouveaux commits que vous n'avez pas.

Si vous aviez cloné son référentiel, vous devriez aller dans le répertoire de ce référentiel local et vérifier dans la branche souhaitée

2
Honey