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 .gitdirectory 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-emptyflag alla fine di git commit -m 'Initial commit'.
git push --force --set-upstream origin masterMa 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 --onelineper vedere i tuoi commit in modo minimalista e per trovare SHA-1 per commit!