Question Comment rebaser la branche locale avec le maître distant


J'ai cloné le projet de la branche principale du référentiel distant remote_repo. Je crée une nouvelle branche et je m'engage dans cette branche. D'autres programmeurs ont poussé à remote_repo maîtriser la branche. Je dois maintenant rebaser ma branche RB sur remote_repo maîtriser. Comment faire ça? Quelles commandes à taper au terminal?


575
2017-10-28 12:39


origine


Réponses:


Récupérez d'abord le nouveau maître à partir du référentiel amont, puis rebasculez votre branche de travail sur celle-ci:

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

Mettre à jour: S'il te plait regarde La réponse de Paul Draper pour une manière plus concise de faire la même chose - les versions récentes de Git fournissent une façon plus simple de faire l'équivalent des deux commandes ci-dessus.


885
2017-10-28 12:51



git pull --rebase origin master

542
2017-08-26 11:12



Après les modifications validées dans votre branche, archivez le master et tirez pour obtenir les modifications du repo:

git checkout master
git pull origin master

Ensuite, vérifiez votre branche et rebasez vos modifications sur master:

git checkout RB
git rebase master

ou deux dernières commandes en une ligne:

git rebase master RB

102
2017-10-28 12:48



Remarque: Si vous avez déjà de vastes connaissances sur le rebasage, utilisez une doublure pour un rebasage rapide. Solution:  En supposant que vous êtes dans votre branche de travail et que vous êtes la seule personne à y travailler.

git fetch && git rebase origin/master

Résolvez les conflits, testez votre code, validez et importez de nouveaux changements dans la branche distante.

                            ~:   For noobs   :~

Les étapes suivantes peuvent aider toute personne qui découvre git rebase et voulait le faire sans tracas

Étape 1: En supposant qu'il n'y a pas de commits et de changements à faire sur YourBranch à ce stade. Nous visitons YourBranch.

git checkout YourBranch
git pull --rebase

Qu'est-il arrivé? Extrait toutes les modifications apportées par d'autres développeurs travaillant sur votre branche et rebase vos modifications par-dessus.

Étape 2: Résolvez tous les conflits qui se présentent.

Étape 3:

git checkout master
git pull --rebase

Qu'est-il arrivé? Tirez toutes les dernières modifications du master et rebasque master sur le dernier master.

Étape 4: Résolvez tous les conflits qui se présentent.

Étape 5: 

git checkout YourBranch
git rebase master

Qu'est-il arrivé? Rebase sur le maître arrive

Étape 6: Résolvez tous les conflits, s'il y a des conflits. Utilisation git rebase --continue continuer à rebaser après avoir ajouté les conflits résolus. A tout moment, vous pouvez utiliser git rebase --abort pour annuler le rebase.

Étape 7:

git push --force-with-lease 

Qu'est-il arrivé? Pousser les modifications à votre YourBranch à distance. --force-with-lease s'assurera s'il y a d'autres changements entrants pour YourBranch d'autres développeurs pendant que vous rebassez. C'est super utile plutôt que de pousser la force. Dans le cas où des changements entrants, puis les chercher pour mettre à jour votre YourBranch locale avant de pousser les changements.

Pourquoi ai-je besoin de pousser les changements? Pour réécrire le message de validation dans YourBranch à distance après un rebasage approprié ou si des conflits sont résolus? Ensuite, vous devez pousser les changements que vous avez résolus dans le repo local au repo distant de YourBranch

Yahoooo ...! Vous avez réussi à rebaser.

Vous pourriez aussi chercher à faire: 

git checkout master
git merge YourBranch

Quand et pourquoi? Fusionner votre branche en master si vous avez terminé avec les changements par vous et d'autres co-développeurs. Ce qui rend YourBranch à jour avec le maître lorsque vous vouliez travailler sur la même branche plus tard.

                            ~:   (๑ơ ₃ ơ) rebase   :~

29
2017-09-11 05:35