Comment puis-je réinitialiser un référentiel Git distant et local pour supprimer tous les commits?
Je voudrais repartir à zéro avec le Head actuel comme commit initial.
Comment puis-je réinitialiser un référentiel Git distant et local pour supprimer tous les commits?
Je voudrais repartir à zéro avec le Head actuel comme commit initial.
Réponses:
Complètement réinitialisé?
Supprimez le .git
répertoire localement.
Recréez le répertoire git:
$ cd (project-directory)
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'
Push vers le serveur distant, écrasement. N'oubliez pas que vous allez gâcher tout le monde en faisant cela… vous feriez mieux d'être le seul client.
$ git remote add origin <url>
$ git push --force --set-upstream origin master
--allow-empty
drapeau à la fin de git commit -m 'Initial commit'
.
git push --force --set-upstream origin master
Mais tout le reste fonctionnait comme décrit
Tout d'abord, suivez les instructions de cette question pour tout écraser en un seul commit. Ensuite, appuyez de force sur la télécommande:
$ git push origin +master
Et supprimez éventuellement toutes les autres branches à la fois localement et à distance:
$ git push origin :<branch>
$ git branch -d <branch>
Si j'étais toi, je ferais quelque chose comme ça:
Avant de faire quoi que ce soit, veuillez en conserver une copie (mieux vaut prévenir que guérir)
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
Après cela, vous pouvez supprimer d'autres branches.
Résultat: vous allez avoir une branche avec seulement 2 commits.
Utilisez
git log --oneline
pour voir vos commits d'une manière minimaliste et pour trouver SHA-1 pour les commits!