Consortingbuer au projet sur github, comment «rebaser ma requête pull au dessus du master»

Ok donc je consortingbue à un projet sur github. Le projet sur github est en upstream , mon repo fourchu sur github est origin et mon repo local sur mon ordinateur.

 git checkout -b feature # Working on feature git commit -a -m 'only commit on feature' 

puis je soumets une demande de tirage

 git push origin master 

La demande d’extraction est examinée et un changement sans rapport doit être effectué. Quelqu’un d’autre fait un commit et fusionne en upstream/master

Maintenant, le responsable upstream me demande de “rebaser ma requête pull sur le maître”

Ceci est mon histoire (insérer l’effet sonore Law and Order) …..

Je n’ai apporté aucune modification à la demande d’extraction et c’est toujours la même fonctionnalité de validation sur la twig.

 git checkout master git fetch upstream git checkout feature git rebase master => "Current branch feature is up to date." git push origin feature => "Everything up-to-date" 

Je ne comprends pas. Comment cela est-il possible quand je sais que quelqu’un s’est engagé et a fusionné en upstream/master après avoir poussé ma requête pull vers l’ origin/feature ?

Quelqu’un peut-il me dire quelle devrait être la procédure correcte dans cette situation?

Vous affichez uniquement une extraction sur le repo en amont. Cela ne met à jour en fait aucune de vos twigs locales. Il ne fait que mettre à jour vos connaissances en upstream . Vous devez vous assurer que le stream upstream/master est entièrement intégré dans votre master , comme avec une git pull , avant de procéder à une nouvelle conversion en master , ou plus simplement en une nouvelle génération en upstream/master .

C’est à dire:

 git checkout master git pull upstream master git checkout feature git rebase master 

ou

 git checkout feature git rebase upstream/master 

Mettre à jour:

Après avoir corrigé votre twig d’ feature locale, vous devrez la ramener à l’ origin pour terminer la mise à jour de la demande d’extraction. Comme vous avez déjà poussé la feature une fois, vous ne pouvez pas simplement push nouveau parce qu’une rebase change d’historique, et ce n’est plus un rapide. Normalement, si une poussée échoue avec un “non-accéléré”, vous résoudrez le problème en effectuant un tirage, mais une simple traction ne fera que combiner les deux histoires divergentes, ce qui n’est certainement pas ce que vous voulez. Cela signifierait que votre ancienne twig (pré-rebase) serait combinée avec la nouvelle (post rebase). Vous voulez écraser l’ origin/feature avec l’état de la nouvelle twig, en vidant tout enregistrement de l’ancienne. Cela signifie que vous voudrez forcer le lancement, même s’il ne s’agit pas d’une avance rapide, en utilisant la git push -f origin feature . Remarque: la force de poussée est dangereuse et vous pouvez perdre des commits avec elle. Utilisez-le uniquement si vous êtes absolument certain de savoir ce que vous faites, comme ici, où vous souhaitez intentionnellement supprimer les anciens commits inutiles dans la twig des feature pré-rebase.

Maintenant, le responsable amont me demande de “rebaser ma requête pull sur le maître”

Notez que depuis septembre 2016, le responsable peut déclencher lui-même le rebase.

Voir ” Rebase et fusion des requêtes d’extraction ”

Lorsque vous sélectionnez la nouvelle option “Rebase and merge”, les commits provenant de la twig de la requête d’extraction sont redéfinis sur l’extrémité de la twig de base, puis la twig de base elle-même est transmise rapidement à cette tête nouvellement rebasée. Les rebasitions définissent automatiquement le committer des commits rebasés sur l’utilisateur actuel, tout en conservant intactes les informations de l’auteur. La twig de la requête d’extraction ne sera pas modifiée par cette opération.

Si une rebase ne peut être effectuée en raison de conflits, nous vous en informerons afin de pouvoir les résoudre manuellement si nécessaire.

https://cloud.githubusercontent.com/assets/2195/18671961/a03fa9b6-7f35-11e6-8fa0-e16b2fede8ca.gif