Git: déplacer un commit “sur le dessus”
Disons que dans master
j'ai une fonctionnalité désactivée.
Je travaille sur cette fonctionnalité sur la branche feature
, j'ai donc un commit spécial $
il y a de juste que permet cette fonctionnalité.
Maintenant, je veux fusionner les modifications que j'ai fait dans feature
en master
, mais gardez à l'activation de commettre l'extérieur. Donc, c'est comme
main: A--B--X--Y
feature: A--B--$--C--D
Donc, disons que je veux le faire, en déplaçant le $
s'engager sur le dessus de la fonctionnalité:
new feature: A--B--C--D--$
Comment pourrais-je aller sur le faire?
Vous devez vous connecter pour publier un commentaire.
git rebase -i B
, et de passer ensuite$
à la fin de la liste qui s'affiche dans votre éditeur. Il va commencer la première ligne dans le fichier qui s'ouvre. Vous pourriez tout aussi bien supprimer cette ligne entièrement, ce qui va tomber juste que s'engager de votre direction générale de l'histoire.git rebase -i $~1
qui est équivalent à$~1
est le commit avant$
, qui estB
Si vous voulez vous garder s'engage dans le même ordre sur
feature
, vous devez faire une nouvelle branche et d'effectuer les opérations suivantes. Sinon, il suffit de le faire surfeature
Déplacer commettre $ à la fin de la liste
Il n'était pas clair pour moi sur la question, mais si vous ne voulez pas $ à tous, plutôt que de déplacer le supprimer après
git rebase -i
Si vous voulez faire cela sur une nouvelle branche de sorte que vous ne les perdez pas. Comme vous sont en train de changer l'histoire.Cela suppose également que la direction de la
feature
n'a pas été poussé à une distance que la réécriture de l'histoire est mauvaise.