2
votes

Réécrire le maître avec une branche orpheline mais conserver l'historique

Dans mon projet, j'ai commencé avec pas mal de commits dans la branche master . Après quelques sorties, j'ai réalisé que l'approche que je prenais n'était peut-être pas du tout ce que nous voulions.

La nouvelle approche nécessitait une réécriture complète du code, j'ai donc décidé de commencer dans une branche orpheline ( a-new-begin-branch ). Je l'ai aimé et finalement, c'est devenu ma branche principale de facto. Maintenant, je veux remplacer master par a-new-starting .

J'ai trouvé comment faire de la branche Git actuelle un maître branche mais en suivant les étapes indiquées ici, j'obtiens le message d'erreur fatal: refus de fusionner des historiques non liés . Je sais que je pourrais utiliser l'option –allow-unrelated-histories mais je ne comprends pas vraiment ce qu'elle fait et je ne veux pas casser des choses.

J'ai également trouvé comment remplacer le branche principale avec une branche orpheline mais je ne souhaite pas supprimer l'historique de ma branche principale.

Dans l'idéal, j'aimerais finir avec une histoire linéaire, mais si ce n'est pas possible, je serai également satisfait d'une sorte de fusion.

 git workflow

Toutes les idées seront très appréciées!

git

0 commentaires

3 Réponses :


0
votes

Avez-vous essayé de rebaser votre maître dans votre nouvelle branche ?

1- $ git checkout a-new-begin-branch

2- $ git rebase master

Votre nouvelle branche contient désormais à la fois l'historique de la branche a-new-starting-branch et master


0 commentaires

2
votes

Je ne comprends pas pourquoi vous souhaitez conserver l'historique actuel de la branche master actuelle, avec votre a-new-begin .

Si vous l'objectif est juste d'avoir une branche nommée master avec l'historique de votre branche a-new-starting , vous pouvez le faire de cette façon:

git branch -m master master-backup
git push origin :master master-backup

git branch -m a-new-beginning master
git push origin :a-new-beginning master

De cette façon, vous mettrez à jour les branches, localement et à distance.


0 commentaires