Eu costumava git init
criar um novo repo, então fiz três commits. Agora eu quero fazer um rebase para voltar e alterar meu primeiro commit, mas se eu fizer git rebase -i HEAD~3
isso reclame! Se eu tentar o mesmo HEAD~2
, meio que funciona, mas só me permite reorganizar os dois últimos commits.
Como me refiro ao 'commit antes de haver qualquer commit' ou voltar e inserir um commit vazio?
git
git-rebase
lxs
fonte
fonte
Respostas:
A maneira mais fácil, com um git recente o suficiente (ele já existe há muito tempo, então você deve tê-lo):
A outra maneira fácil, como twalberg observou em um comentário , é usar
git checkout --orphan
para configurar para fazer um novo commit de root, do qual você pode copiar os commits antigos. (Isso é o querebase -i --root
acaba fazendo internamente de qualquer maneira.)fonte
git rebase -i --root
, obtenho o erroerror: cannot 'fixup' without a previous commit
ao tentar esmagar o segundo commit (eu só quero o primeiro)pick
para cada um. Mude o segundopick
parasquash
oufixup
, escreva a folha de instruções, saia do seu editor e o Git fará o trabalho.