J'avais l'habitude git init
de créer un nouveau repo, puis de faire 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 ne me laisse réorganiser que les deux derniers commits.
Comment faire référence au «commit avant qu'il y ait des commits» ou revenir en arrière et insérer un commit vide?
git
git-rebase
lxs
la source
la source
Réponses:
Le moyen le plus simple, avec un git assez récent (cela existe depuis longtemps maintenant, vous devriez donc l'avoir):
L'autre moyen simple, comme twalberg l'a noté dans un commentaire , est d'utiliser
git checkout --orphan
pour configurer un nouveau commit root, sur lequel vous pouvez copier les anciens commits par-dessus. (C'est ce quirebase -i --root
finit par faire en interne de toute façon.)la source
git rebase -i --root
j'obtiens l'erreurerror: cannot 'fixup' without a previous commit
en essayant d'écraser le deuxième commit (je veux juste le premier)pick
pour chacun. Remplacez le secondpick
parsquash
oufixup
, écrivez la feuille d'instructions, quittez votre éditeur et Git devrait faire le travail.