Branche de Git a divergé après rebase

J’ai rebasé une twig localement qui était déjà poussée.

Git conseille que ma twig et ma télécommande aient divergé et que:

“et avoir respectivement 109 et 73 commits différents”

Est-ce que le fait de pousser ma twig résoudra ce problème – est-ce à attendre après une rebase?

Lorsque vous rebase une twig, vous devez réécrire les commits pour tout commit se trouvant au-dessus des commits de la twig sur laquelle vous vous référez. C’est parce que l’une des propriétés d’un commit est son parent (ou ses parents). Lorsque vous rebase, vous modifiez le parent de la validation locale la plus ancienne sur votre twig – et changez ainsi les hachages de validation de tous vos commits locaux, car cette modification monte en transit de manière transitoire.

Puisque vous aviez déjà poussé la twig, vous auriez dû fusionner dans la twig source, plutôt que de la rebaser. Il est possible de “forcer” votre nouvelle twig (en utilisant le drapeau -f ), mais une poussée normale ne fonctionnera pas, car l’intégrité de l’historique des twigs sera perturbée. Si vous collaborez avec d’autres membres de cette twig, la force est une mauvaise idée, car cela risque d’embrouiller les autres collaborateurs lorsque leur histoire ne correspond plus du tout.

TL; DR – Si vous ne collaborez pas, appuyez sur la twig en utilisant push -f. Si c’est le cas, réinitialisez la twig à l’état précédent et fusionnez-la dans la twig source.

Tous vos commits ont changé d’identifiants, donc la diversion n’est pas vraiment une divergence.

Pour résoudre votre problème, vous devez remplacer votre twig distante:

 git push -f origin experiment 

http://git-scm.com/book/ch3-6.html

Explication:

Voir comment dans cette image C3 n’est pas mis comme C3 après le rebase, mais comme C3 ‘. C’est parce que ce n’est pas exactement C3, mais il a toutes ses modifications de code.

Rebase

Sur cette autre image, vous obtenez une image de ce qu’une rebase est vue quand une télécommande est impliquée et pourquoi il ya une déviation.

diverger et pousser

En tout cas, après avoir fait la poussée forcée, cela vous dira que cela a fait une mise à jour forcée.

Vérifiez le lien en haut et recherchez “git push –force”. Vous verrez une explication plus détaillée.