web-dev-qa-db-fra.com

Comment puis-je git rebaser le premier commit?

J'ai utilisé git init pour créer un nouveau dépôt, puis fait trois commits. Maintenant, je veux rebaser pour revenir en arrière et modifier mon premier commit, mais si je le fais git rebase -i HEAD~3 il se plaint! Si j'essaye la même chose avec HEAD~2 alors ça marche un peu mais me permet seulement de réorganiser les deux derniers commits.

Comment puis-je faire référence au "commit avant qu'il n'y ait eu de commit" ou revenir en arrière et insérer un commit vide?

86
lxs

Le moyen le plus simple, avec un git assez récent (cela fait longtemps que vous ne devriez pas l'avoir):

git rebase -i --root

L'autre moyen simple, comme Twalberg l'a noté dans un commentaire , est d'utiliser git checkout --Orphan à configurer pour créer un nouveau commit racine, dont vous pouvez copier les anciens commits par-dessus. (C'est quoi rebase -i --root finit par faire de toute façon en interne.)

66
torek