web-dev-qa-db-fra.com

Quelle est la difference entre pull et clone in git?

Quelle est la différence entre faire (après mkdir repo et cd repo):

git init
git remote add Origin git://github.com/cmcculloh/repo.git
git fetch --all
git pull Origin master

et

git clone git://github.com/cmcculloh/repo.git

Je veux dire, évidemment, il y en a un qui est plus court, mais à part ça, font-ils fondamentalement la même chose?

206
cmcculloh

Ils sont fondamentalement les mêmes, sauf que clone configurera des branches de suivi à distance supplémentaires, pas seulement des maîtres. Découvrez le page de manuel :

Clone un référentiel dans un répertoire nouvellement créé, crée des branches de suivi à distance pour chaque branche du référentiel cloné (visible à l'aide de git branch -r), crée et extrait une branche initiale issue de la branche actuellement active du référentiel cloné.

107
meagar

git clone vous permet d'obtenir une copie locale d'un référentiel existant. Il est généralement utilisé une seule fois pour un référentiel donné, sauf si vous souhaitez en avoir plusieurs copies de travail. (Ou voulez obtenir une copie vierge après avoir gâché votre copie locale ...)

git pull (ou git fetch + git merge) est la façon dont vous mettez à jour cette copie locale avec les nouveaux commits du référentiel distant. Si vous collaborez avec d’autres, c’est une commande que vous exécuterez fréquemment.

Comme le montre votre premier exemple, il est possible d'émuler git clone avec un assortiment d'autres commandes git, mais ce n'est pas vraiment le cas que git pull fasse "fondamentalement la même chose" que git clone (ou vice versa).

220
ebneter

En langage profane, on peut dire:

  • Clone: Obtenez une copie de travail du référentiel distant.
  • Pull: Je travaille dessus, donnez-moi s'il vous plaît les nouvelles modifications qui peuvent être mises à jour par d'autres.
105
Jyoti Prakash

git clone signifie que vous faites une copie du référentiel dans votre système.

git fork signifie que vous copiez le référentiel sur votre compte Github.

git pull signifie que vous récupérez le dernier référentiel modifié.

git Push signifie que vous retournez le référentiel après l'avoir modifié.

En terme de profane:

git clone est en cours de téléchargement et git pull est rafraîchissant.

28
user7909000

clone: copie du référentiel du serveur distant sur votre ordinateur local.

pull: récupère les nouvelles modifications que d'autres ont ajoutées à votre ordinateur local.

C'est la différence.

Le clonage est généralement utilisé pour obtenir une copie de référant à distance.

Pull est utilisé pour afficher le code ajouté par vos coéquipiers, si vous travaillez en équipe.

8
Suman Astani

git clone est utilisé pour télécharger exactement ce qui fonctionne actuellement sur le référentiel du serveur distant et l'enregistrer dans le dossier de votre ordinateur où ce projet est placé. Généralement, il est utilisé uniquement lorsque nous allons télécharger le projet pour la première fois. Après cette traction est la meilleure option.

git pull est essentiellement une opération (clone (téléchargement) + fusion) utilisée principalement lorsque vous travaillez en équipe. En d'autres termes, vous pouvez extraire les modifications récentes apportées à ce projet.

3
Raman_1059

Hmm, que manque-t-il pour voir la branche distante "4.2" quand je tire, comme je le fais quand je clone? Quelque chose n'est clairement pas identique.

tmp$  mkdir some_repo

tmp$  cd some_repo

some_repo$  git init
Initialized empty Git repository in /tmp/some_repo/.git/

some_repo$  git pull https://github.ourplace.net/babelfish/some_repo.git
  :
From https://github.ourplace.net/babelfish/some_repo
 * branch            HEAD       -> FETCH_HEAD

some_repo$  git branch
* master

contre

tmp$  rm -rf some_repo

tmp$  git clone https://github.ourplace.net/babelfish/some_repo.git
Cloning into 'some_repo'...
  :
Checking connectivity... done.

tmp$  cd some_repo

some_repo$  git branch
* 4.2
2
Scott

Bien que la commande git fetch récupère toutes les modifications que vous n’avez pas encore apportées au serveur, elle ne modifiera pas du tout votre répertoire de travail. Il obtiendra simplement les données pour vous et vous permettra de les fusionner vous-même. Cependant, il existe une commande appelée git pull qui est essentiellement un git fetch immédiatement suivie d'un git merge dans la plupart des cas.

En savoir plus: https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Pulling

1
simopr

uRL de clone git ---> Le projet ou le référentiel complet sera téléchargé en tant que répertoire séparé. et pas seulement les modifications git pull URL ---> fetch + fusion -> Il ne récupérera que les modifications apportées et non le projet entier

0
Md Abrar