Je suis un noob dans Git, et essayer d'apprendre la différence entre git pull
vs git rebase
. Quelqu'un peut-il donner un exemple quand utiliser quelle option puisque j'estime que les deux servent le même objectif.
Je suis un noob dans Git, et essayer d'apprendre la différence entre git pull
vs git rebase
. Quelqu'un peut-il donner un exemple quand utiliser quelle option puisque j'estime que les deux servent le même objectif.
Réponses:
git pull
et git rebase
ne sont pas interchangeables, mais ils sont étroitement liés.
git pull
récupère les dernières modifications de la branche actuelle à partir d'une télécommande et applique ces modifications à votre copie locale de la branche. Généralement, cela se fait par fusion, c'est-à-dire que les modifications locales sont fusionnées dans les modifications distantes. Donc git pull
est similaire à git fetch & git merge
.
Le rebasage est une alternative à la fusion. Au lieu de créer un nouveau commit qui combine les deux branches, il déplace les commits de l'une des branches sur l'autre.
Vous pouvez tirer en utilisant rebase au lieu de merge ( git pull --rebase
). Les modifications locales que vous avez apportées seront rebasées en plus des modifications à distance, au lieu d'être fusionnées avec les modifications à distance.
Atlassian a une excellente documentation sur la fusion et le rebasage .
git-pull - Récupérer et intégrer avec un autre référentiel ou une branche locale GIT PULL
Fondamentalement, vous tirez la branche distante vers votre local, par exemple:
git pull origin master
Tirera la branche principale dans votre référentiel local
git-rebase - Les commits locaux du port de transfert vers la tête amont mise à jour GIT REBASE
Celui-ci met vos modifications locales au-dessus des modifications effectuées à distance par d'autres utilisateurs. Par exemple:
SOME-FEATURE
Vous voulez maintenant voir ses modifications et vos modifications dans votre succursale locale. Alors vous passez à la caisse master
:
git checkout master
alors vous pouvez tirer:
git pull origin master
puis vous vous rendez dans votre agence:
git checkout SOME-FEATURE
et vous pouvez faire un rebase master
pour obtenir les dernières modifications et mettre vos commits de branche en haut:
git rebase master
J'espère que maintenant c'est un peu plus clair pour vous.
git fetch
alors git rebase origin/master
.
En un mot :
-> Git Merge: il fusionnera simplement vos modifications et celles à distance, et cela créera un autre enregistrement d'historique de validation
-> Git Rebase: Cela placera vos modifications au-dessus de toutes les nouvelles modifications à distance et réécrira l'historique des commit, de sorte que votre historique de commit sera beaucoup plus propre que git merge. Rebase est une opération destructrice. Cela signifie que si vous ne l'appliquez pas correctement, vous risquez de perdre le travail engagé et / ou de rompre la cohérence des référentiels d'autres développeurs.