J'ai deux branches, email et staging. Staging est la plus récente et je n'ai plus besoin des anciennes modifications dans la branche 'email', mais je ne veux pas les supprimer. Je veux donc simplement vider tout le contenu de 'staging' dans 'email' pour qu'elles pointent toutes deux vers le même commit. Est-ce possible ?
Réponses
Trop de publicités?Si vous voulez simplement que les deux branches 'email' et 'staging' soient identiques, vous pouvez étiqueter la branche 'email', puis réinitialiser la branche 'email' sur la branche 'staging' :
$ git checkout email
$ git tag old-email-branch
$ git reset --hard staging
Vous pouvez aussi rebaser la branche 'staging' sur la branche 'email'. Mais le résultat contiendra la modification des deux branches.
Les autres réponses m'ont donné les bons indices, mais n'ont pas permis de résoudre complètement le problème.
Voici ce qui a marché pour moi :
$ git checkout email
$ git tag old-email-branch # this is optional
$ git reset --hard staging
$ git merge -s ours origin/email
$ git push origin email
Sans la 4e étape de fusion avec la nôtre, le push est considéré comme une mise à jour non rapide et sera rejeté (par GitHub).