Nous utilisons git et avons une branche master et des branches développeurs. J'ai besoin d'ajouter une nouvelle fonctionnalité et de rebaser les commits vers master, puis de pousser master vers le serveur CI.
Le problème est que si j'ai des conflits pendant le rebasement, je ne peux pas pousser vers ma branche de développement distante (sur Github) une fois le rebasement terminé, jusqu'à ce que je tire ma branche distante. Cela provoque des commits en double. Lorsqu'il n'y a pas de conflits, cela fonctionne comme prévu.
question : après le rebasement et la résolution des conflits, comment puis-je synchroniser mes branches de développement locales et distantes sans créer des commits en double ?
Mise en place :
// master branch is the main branch
git checkout master
git checkout -b myNewFeature
// I will work on this at work and at home
git push origin myNewFeature
// work work work on myNewFeature
// master branch has been updated and will conflict with myNewFeature
git pull --rebase origin master
// we have conflicts
// solve conflict
git rebase --continue
//repeat until rebase is complete
git push origin myNewFeature
//ERROR
error: failed to push some refs to 'git@github.com:ariklevy/dropLocker.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
// do what git says and pull
git pull origin myNewFeature
git push origin myNewFeature
// Now I have duplicate commits on the remote branch myNewFeature
EDITAR
Il semble donc que cela va briser le flux de travail :
développeur1 travaillant sur myNewFeature le développeur2 travaille sur saNewFeature tous deux utilisent master comme branche principale
le développeur2 fusionne maNewFeature avec saNewFeature
developer1 rebase, résout les conflits, puis force les pousses vers la branche distante pour myNewFeature
quelques jours plus tard, le développeur2, fusionne à nouveau maNewFeature dans saNewFeature
Est-ce que cela va amener les autres développeurs à détester le développeur 1 ?