Je suis un noob dans Git, et essayer d'apprendre la différence entre git pullvs git rebase. Quelqu'un peut-il donner un exemple quand utiliser quelle option puisque j'estime que les deux servent le même objectif.
Oui je l'ai fait. La différence entre pull et rebase est que pull effectue une fusion. La réponse à votre question se trouve donc sur le lien que j'ai collé.
Thibault D.
1
@ user4943236 1) vous ne savez même pas qui a voté contre votre question, n'accusez pas les gens sans raison 2) si c'était mon vote défavorable, je ne le supprimerais pas simplement parce que c'est si facile de trouver une réponse en lisant documentation
git pullet git rebasene sont pas interchangeables, mais ils sont étroitement liés.
git pullré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 pullest 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.
Vous n'avez pas besoin de commander le maître. Restez sur votre branche et faites: git fetchalors git rebase origin/master.
Antoine Martin
1
En vérifiant le maître local, puis en tirant sur le maître d'origine, vous mettrez également à jour votre maître local. C'est l'une des meilleures pratiques à utiliser
Ashwani
21
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.
Réponses:
git pull
etgit 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. Doncgit 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 .
la source
Fondamentalement, vous tirez la branche distante vers votre local, par exemple:
Tirera la branche principale dans votre référentiel local
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
:alors vous pouvez tirer:
puis vous vous rendez dans votre agence:
et vous pouvez faire un rebase
master
pour obtenir les dernières modifications et mettre vos commits de branche en haut:J'espère que maintenant c'est un peu plus clair pour vous.
la source
git fetch
alorsgit 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.
la source