Dans une tentative d'atteindre le nirvana de git, je passe la journée à apprendre comment tirer parti de rebase dans les situations où je fusionne actuellement.
Lors de l'exécution de ce que je considère comme un flux git 101 (que je détaille ci-dessous), je dois push --force
lorsque je repousse mes modifications vers l'origine.
Je ne suis pas le seul - je sais qu'il s'agit d'un sujet déjà abordé (voir 1 , 2 , 3 , 4 , 5 ), et je comprends les raisons techniques pourquoi une force est nécessaire. Mon problème est le suivant --- il y a beaucoup (beaucoup) d'articles de blog qui chantent les louanges de rebase et comment cela a changé leur vie (voir 1 , 2 , 3 , 4 pour n'en citer que quelques-uns), mais aucun d'entre eux ne mentionne que les push --force
fait partie de leur flux. Cependant, presque toutes les réponses aux questions existantes de stackoverflow disent des choses comme "ouais, si vous allez rebaser, vous devez utiliser push --force
".
Compte tenu du nombre et de la religiosité des partisans de la rebase, Je dois croire que l'utilisation de "push --force" n'est pas une partie inhérente d'un flux de rebase, et que si quelqu'un doit souvent forcer ses pushs, il fait quelque chose de mal .
push --force
es un mauvaise chose .
Voici donc mon flux. Comment pourrais-je obtenir les mêmes résultats sans force ?
Exemple simple
Deux branches :
- v1.0 - une branche "release", qui ne contient que des correctifs
- maître - tout pour la prochaine version majeure.
J'ai quelques commits de correctifs et quelques commits pour la prochaine version.
J'aimerais incorporer les correctifs dans mon master afin qu'ils ne soient pas perdus pour la prochaine version. Avant l'illumination, tout simplement :
git checkout master
git merge v1.0
Mais maintenant, j'essaie
git checkout master
git rebase v1.0
Maintenant, je suis ici :
Temps pour :
git push
Aucun résultat.