4 votes

Pourquoi git-rebase rencontre-t-il des conflits lorsque l'amont est déjà atteignable?

J'ai une branche git "dev". La branche "master" est atteignable depuis dev. Alors que je suis sur la branche "dev", si je tape "git log master..dev --pretty=oneline", il montre clairement que master est atteignable (104 commits plus tôt). Mais si je tape "git rebase master", il s'arrêtera avec des conflits. Pourquoi est-ce que cela se produit? Ne devrait pas le rebase ne rien faire dans ce cas, étant donné que dev est déjà basé sur master?

La raison pour laquelle je pose cette question est que je veux vraiment réaliser un rebase interactif avec des écrasements et des reword pour nettoyer un historique long. Mais je suis découragé par le fait de devoir résoudre tous les conflits qui auraient déjà dû être résolus une fois que j'ai commencé le rebase.

Voici quelques questions connexes auxquelles j'ai déjà regardées :

1voto

Karl Bielefeldt Points 15469

git rebase master rebases your branch to be based off the latest commit in master. If you want to base it off something earlier, you need to specify the exact commit, i.e.

git rebase `git merge-base master HEAD`

Translation:

git rebase master rebases votre branche pour qu'elle soit basée sur le dernier commit de master. Si vous souhaitez baser votre branche sur un commit antérieur, vous devez spécifier le commit exact, c'est-à-dire

git rebase `git merge-base master HEAD`

0voto

sehe Points 123151

Rebase != fusionner

Si vous voulez simplement avancer rapidement, utilisez

git pull --ff-only ...
git merge --ff-only ...

Si vous voulez 'rebasage/avancement rapide automatique' en fonction du contexte actuel et de la relation de vos branches, je suppose que cela fonctionnerait:

git pull --rebase ...

Vous voudrez peut-être lire la page man pour savoir exactement ce qu'elle fait

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X