Question

Je veux supprimer un entre-deux fusion (supprimer, écrasez pas), puis déplacer les 2 derniers à une nouvelle commits branche.

Ceci est mon git log --graph actuelle:

* 3a5c453 - (2 hours ago) last commit (HEAD, master)
*   b6c19f1 - (2 hours ago) Merge branch 'tade' into HEAD
|\  
* | be356d0 - (2 hours ago) previous commit
| * 65328dc - (3 hours ago) some other commit in branch tade

Je veux mettre fin à ceci:

    * bbbbbbb - (some time in the future) a later commit on tade (tade)
*   | aaaaaaa - (some time in the future) a later commit on master (master)
| * | 3a5c453 - (2 hours ago) last commit (HEAD, newone)
| * | be356d0 - (2 hours ago) previous commit
|/  |
|   * 65328dc - (3 hours ago) some other commit in branch tade

Je pensé à utiliser git rebase -i pour enlever la fusion avec le tade de branche, puis faire un git branch newone et git reset --hard HEAD^2 pour déplacer les 2 derniers commits à la nouvelle branche. Quand je l'ai fait rebasage cependant, il m'a montré tous les commits de la branche tade qui a obtenu fusionné en maître et | était réticent à les supprimer.

Y at-il une meilleure façon ou devrais-je aller de l'avant?

EDIT: Je mis à jour le graphique de l'Etat destiné à le rendre plus clair. Le 2 nouveaux commettras (aaaaaaa et bbbbbbb) ne sont là que pour illustrer l'état un peu mieux (je l'espère)

Était-ce utile?

La solution

Utilisez rebasage interactif pour rebasage 3a5c453 sur be356d0 au lieu de la fusion engagent b6c19f1 (à savoir il suffit de déplacer le 3a5c453 commettre un vers le bas). Ensuite, vous devriez avoir quelque chose comme ceci:

*   xxxxxxx - (2 hours ago) Merge branch 'tade' into HEAD
|\  
* | yyyyyyy - (2 hours ago) last commit (HEAD)
* | be356d0 - (2 hours ago) previous commit
| * 65328dc - (3 hours ago) some other commit in branch tade

Ensuite, vous pouvez simplement créer de nouvelles branches:

git checkout -b newbranch yyyyyy

Ensuite, vous pouvez supprimer xxxxxx et engager quelque chose au maître et finir avec ceci:

* zzzzzz - new commit on master
| * | yyyyyyy - (2 hours ago) last commit (HEAD)
| * | be356d0 - (2 hours ago) previous commit
| | * 65328dc - (3 hours ago) some other commit in branch tade
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top