Je reçois le message suivant lors de l'exécution de git status
Your branch is ahead of 'Origin/master' by 3 commits.
J'ai lu sur un autre article que la façon de résoudre ce problème est exécutée git pull --rebase
mais qu'est-ce que rebase exactement, vais-je perdre des données ou est-ce un moyen simple de synchroniser avec maître?
Vous recevez ce message parce que vous avez apporté des modifications à votre maître local et que vous ne les avez pas envoyées à distance. Vous avez plusieurs façons de le "résoudre" et cela dépend normalement de l'apparence de votre flux de travail:
git Push Origin
_ en supposant que l'origine est votre télécommandegit reset --hard Origin/master
Il n'y a rien à réparer. Vous avez simplement effectué 3 commits et ne les avez pas encore déplacés vers la branche distante. Il y a plusieurs options, selon ce que vous voulez faire:
git Push
: déplacez vos modifications vers la télécommande (ceci peut être rejeté s'il y a déjà d'autres modifications sur la télécommande)git pull
: récupère les modifications (le cas échéant) de la télécommande et les fusionne dans vos modificationsgit pull --rebase
: comme ci-dessus, mais essayez de refaire vos commits en plus des modifications à distanceVous êtes dans une situation classique (même si, en général, la plupart des workflows ne nécessitent pas beaucoup de maîtrise). Voici ce que je ferais normalement: Passez en revue mes modifications. Peut-être faire un git rebase --interactive
pour faire des cosmétiques sur eux, laissez tomber ceux qui sont nuls, réorganisez-les pour les rendre plus logiques. Maintenant déplacez-les vers la télécommande avec git Push
. Si cela est rejeté parce que ma branche locale n'est pas à jour: git pull --rebase
pour refaire mon travail en plus des modifications les plus récentes et git Push
à nouveau.
Étape 1: git checkout <branch_name>
C'est évident d'aller dans cette branche.
étape 2: git pull -s recursive -X theirs
Prenez des modifications de branches distantes et remplacez-les par des modifications en cas de conflit. Ici si vous faites git status
vous obtiendrez quelque chose comme ceci votre branche est en avance sur 'Origine/maître' de 3 commits.
étape: git reset --hard Origin/<branch_name>
étape 4: git fetch
Réinitialisez votre branche.
Prendre plaisir.
Je suis tombé sur ce problème après avoir fusionné une demande d'extraction sur Bitbucket.
Devais faire
git fetch
et c'était tout.
Ce message de git
signifie que vous avez effectué trois commits dans votre référentiel local et que vous ne les avez pas publiés dans le référentiel master
. La commande à exécuter pour cela est git Push {local branch name} {remote branch name}
.
La commande git pull
(et git pull --rebase
) s'appliquent à l'autre situation lorsqu'il existe des validations sur le référentiel distant que vous ne possédez pas dans votre référentiel local. L'option --rebase
signifie que git
déplacera votre commit local, se synchronisera avec le référentiel distant, puis tentera d'appliquer vos trois commit à partir du nouvel état. Il peut échouer en cas de conflit, mais vous serez alors invité à les résoudre. Vous pouvez également abandonner la rebase
si vous ne savez pas comment résoudre les conflits à l'aide de git rebase --abort
et que vous revenez à l'état antérieur à l'exécution de git pull --rebase
.
Habituellement, si je dois vérifier quels sont les commits qui diffèrent de ceux du maître, je le fais:
git rebase -i Origin/master
De cette façon, je peux voir les commits et décider de les laisser tomber ou de choisir ...
Si votre git dit que vous vous engagez, alors tout d’abord,
git push origine
Pour vous assurer que vous avez poussé tous vos derniers travaux en repo
Ensuite,
réinitialisation git - origine dure/maître
Pour réinitialiser et faire correspondre avec le repo
Cela m'est arrivé une fois après avoir fusionné une demande d'extraction sur Bitbucket.
Je devais juste faire:
git fetch
Mon problème était résolu. J'espère que ça aide!!!