Come posso resettare un repository Git remoto e locale per rimuovere tutti i commit?
Vorrei ricominciare da capo con l'attuale Head come commit iniziale.
Come posso resettare un repository Git remoto e locale per rimuovere tutti i commit?
Vorrei ricominciare da capo con l'attuale Head come commit iniziale.
Risposte:
Completamente resettato?
Elimina la .git
directory localmente.
Ricrea il repostory git:
$ cd (project-directory)
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'
Invia al server remoto, sovrascrittura. Ricorda che sbaglierai tutti gli altri facendo questo ... faresti meglio ad essere l'unico cliente.
$ git remote add origin <url>
$ git push --force --set-upstream origin master
--allow-empty
flag alla fine di git commit -m 'Initial commit'
.
git push --force --set-upstream origin master
Ma tutto il resto funzionava come descritto
Innanzitutto, segui le istruzioni in questa domanda per comprimere tutto in un unico commit. Quindi fai una spinta forzata al telecomando:
$ git push origin +master
E facoltativamente elimina tutte le altre filiali sia localmente che da remoto:
$ git push origin :<branch>
$ git branch -d <branch>
Se fossi in te farei una cosa del genere:
Prima di fare qualsiasi cosa, ti preghiamo di conservarne una copia (meglio prevenire che curare)
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
Dopo averlo fatto, puoi eliminare altri rami.
Risultato: avrai una filiale con solo 2 commit.
Usa
git log --oneline
per vedere i tuoi commit in modo minimalista e per trovare SHA-1 per commit!