tirez vs chercher:
La façon dont je le comprends, c'est qu' git pull
est tout simplement un git fetch
suivie par git merge
. I. e. vous allez chercher les modifications d'une branche distante et puis les fusionner dans le courant de la branche.
fusion vs rebase:
Une fusion va faire comme la commande dit; fusionner les différences entre la branche et la branche (dans le courant de la branche). I. e. la commande git merge another_branch
sera la fusion another_branch
dans la branche courante.
Un rebase fonctionne un peu différemment et est plutôt cool. Disons que vous exécuter la commande git rebase another_branch
. Git va d'abord trouver la dernière version commune entre le courant de la branche et de l' another_branch
. I. e. le point avant que les branches ont divergé. Puis git déplacera ce divergences de point à la tête de l' another_branch
. Enfin, tous les commits de la branche courante depuis l'origine divergences de point sont relus à partir de la nouvelle divergences de point. Cela crée un très propre histoire, avec moins de branches et les fusions.
Cependant, il n'est pas sans embûches! Depuis la version de l'histoire est "réécrit", vous ne devriez faire cela si les commits n'existe que dans votre repo git local. C'est: ne Jamais faire cela si vous avez poussé la s'engage à une distance de repo.
L'explication sur le changement d'année de base donnée dans ce livre en ligne est assez bonne, avec facile-à-comprendre les illustrations.
tirez avec la relocalisation au lieu de fusionner
Je suis en fait à l'aide de rebase beaucoup, mais il est habituellement en combinaison avec d'pull:
git pull --rebase
va récupérer à distance des changements et rebase au lieu de fusionner. I. e. il va de relecture de tous vos locaux commits depuis la dernière fois que vous avez effectué un pull. Je trouve cela beaucoup plus propre que de faire une traction normales avec la fusion, ce qui permettra de créer un supplément de s'engager avec les fusions.