Como posso redefinir um repositório Git remoto e local para remover todas as confirmações?
Gostaria de começar de novo com o atual Head como o commit inicial.
Como posso redefinir um repositório Git remoto e local para remover todas as confirmações?
Gostaria de começar de novo com o atual Head como o commit inicial.
Respostas:
Redefinir completamente?
Exclua o .git
diretório localmente.
Recrie o repositório git:
$ cd (project-directory)
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'
Envie para o servidor remoto, substituindo. Lembre-se de que você vai estragar todo mundo fazendo isso ... é melhor você ser o único cliente.
$ git remote add origin <url>
$ git push --force --set-upstream origin master
--allow-empty
sinalizador no final de git commit -m 'Initial commit'
.
git push --force --set-upstream origin master
Mas todo o resto estava trabalhando como descrito
Primeiro, siga as instruções nesta pergunta para compactar tudo em um único commit. Em seguida, faça um empurrão forçado no controle remoto:
$ git push origin +master
E, opcionalmente, exclua todos os outros ramos local e remotamente:
$ git push origin :<branch>
$ git branch -d <branch>
Se eu fosse você, faria algo assim:
Antes de fazer qualquer coisa, guarde uma cópia (é melhor prevenir do que remediar)
git checkout master
git checkout -b temp
git reset --hard <sha-1 of your first commit>
git add .
git commit -m 'Squash all commits in single one'
git push origin temp
Depois de fazer isso, você pode excluir outros ramos.
Resultado: você terá uma ramificação com apenas 2 confirmações.
Use
git log --oneline
para ver seus commits de maneira minimalista e para encontrar o SHA-1 para commits!