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?
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é.
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).
En langage profane, on peut dire:
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.
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.
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.
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
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
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