Maison  >  Article  >  outils de développement  >  Jetons un coup d'œil à la différence entre git fetch et git pull

Jetons un coup d'œil à la différence entre git fetch et git pull

coldplay.xixi
coldplay.xixiavant
2021-04-26 16:46:002343parcourir

Jetons un coup d'œil à 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. Plusieurs concepts doivent être mentionnés pour clarifier ce problème.

Recommandé (gratuit) : Git

FETCH_HEAD : C'est un lien de version, enregistré dans un fichier local, pointant vers la version finale de la branche qui a été supprimée du référentiel 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 sera généré. est un numéro de série A unique qui identifie 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 entrepôts distants dans git remote et l'enregistrera Accédez au fichier .git/FETCH_HEAD
La façon de mettre à jour l'entrepôt distant avec git fetch est la suivante :

git fetch origin master:tmp 
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp 
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除

(1) Si vous utilisez directement git fetch, les étapes sont les suivantes :

  • Créez et mettez à jour la branche distante locale. Autrement dit, créez et mettez à jour la branche origin/xxx, et extrayez le code vers la branche origin/xxx.
  • Définissez la correspondance branche-origine/branche actuelle dans FETCH_HEAD Si vous git merge directement à ce moment-là, origin/abc peut être fusionné dans la branche abc.

(2) git fetch origin
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écifie distant et FETCH_HEAD, et extrait uniquement les validations 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 ultérieures de la branche distante actuellement pointée, puis utilisez git merge pour la fusionner avec la branche actuelle locale. Doncon peut 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 <远程主机名> <远程分支名>:<本地分支名>
//取回远程主机某个分支的更新,再与本地的指定分支合并。

Par conséquent, git fetch consiste à obtenir la dernière version de la télécommande vers la version locale, mais elle ne fusionnera pas automatiquement .
Et git pull obtiendra tous les index distants et les fusionnera dans la branche locale . 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer