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?
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.
git pull --rebase origin master
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
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 :~