Maison >Tutoriel système >Linux >En savoir plus sur la différence entre git fetch et git pull
Git fetch et git pull peuvent tous deux mettre à jour le référentiel distant vers le référentiel local. Alors, quelles sont les différences entre eux ? Il y a plusieurs concepts qui doivent être mentionnés pour clarifier ce problème.
FETCH_HEAD : Il s'agit d'un lien de version, enregistré dans un fichier local, pointant vers la version finale de la branche qui a été supprimée de l'entrepôt distant.
commit-id : une fois chaque travail local terminé, une opération git commit sera effectuée pour enregistrer le travail en cours dans le dépôt local. À ce moment, un commit-id sera généré, qui est un numéro de série qui identifie de manière unique. une version. Après avoir utilisé git push, ce numéro de série sera également synchronisé avec l'entrepôt distant.
Avec les concepts ci-dessus, parlons de git fetch
git fetch : Cela mettra à jour le dernier commit-id des branches contenues dans tous les référentiels distants dans git remote et l'enregistrera dans le fichier .git/FETCH_HEAD
La façon dont git fetch met à jour le référentiel distant est la suivante :
git fetch origin master:tmp <span class="hljs-comment"> //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支</span> git diff tmp <span class="hljs-comment"> //来比较本地代码与刚刚从远程下载下来的代码的区别</span> git <span class="hljs-built_in">merge</span> tmp<span class="hljs-comment"> //合并temp分支到本地的master分支</span> git branch -d temp<span class="hljs-comment"> //如果不想保留temp分支 可以用这步删除</span>
(1) Si vous utilisez directement git fetch, les étapes sont les suivantes :
(2)git récupérer l'origine
Spécifiez simplement manuellement la télécommande à récupérer. Lorsqu'aucune branche n'est spécifiée, la valeur par défaut est généralement master
(3)git fetch origin dev
Spécifiez remote et FETCH_HEAD, et extrayez uniquement les commits de cette branche.
git pull : Tout d'abord, sur la base de l'enregistrement FETCH_HEAD local, comparez l'enregistrement FETCH_HEAD local avec le numéro de version de l'entrepôt distant, puis utilisez git fetch pour obtenir les données de version suivantes de la branche distante actuellement pointée, puis utilisez git merge pour le fusionner avec Merge la branche actuelle locale. On peut donc considérer que git pull est une combinaison des deux étapes de git fetch et git merge.
L'utilisation de git pull est la suivante :
git pull <span class="hljs-tag">60c690392010ae04a4c92ce6c44e5cd2</span> <span class="hljs-tag">2e81c6e41cd53cc8483c7ee2820f9055</span>:<span class="hljs-tag">a70f6d52bffd2c4d7fbfb25461f834a0</span> //取回远程主机某个分支的更新,再与本地的指定分支合并。
Par conséquent, comparé à git pull, git fetch équivaut à obtenir la dernière version du distant vers le local, mais il ne fusionnera pas automatiquement. Si vous avez besoin de fusionner sélectivement, git fetch est un meilleur choix. Lorsque l'effet est le même, git pull sera plus rapide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!