2012-05-30 105 views
11

Eventuali duplicati:
How can I remove a commit on github?
How to delete a 'git commit'Eliminare un commit da github

Così sto cercando di rimuovere un commit da github.

Sono 3 commit e sto bene se tutte le modifiche sono perse.

Quindi, sulla base domande da qui, ho fatto un

git reset --hard <sha-commit-name-to-go-back-to> 
git push -f origin HEAD^:master 

Ora si va da github così come in git log.

Allora ho rifatto le mie modifiche e fatto

git add <file I changed> 
git commit 
git log 

Tutto sembra a posto. Non c'è traccia dei vecchi commit. Così ho finalmente fatto un:

git push 

Ora improvvisamente github ha quei tre commit che ho rimosso.

Cosa sto sbagliando? Come mantenere il commit di ritorno?

risposta

11

Utilizzare il processo git rebase prima di applicare le nuove modifiche. Dopo aver aggiunto nuovamente le nuove modifiche e commit.

git rebase -i HEAD~2 

git push origin +master 
+0

Grazie! Questo sembra aver funzionato. Comunque scavando nella directory .git ho trovato un mucchio di file sotto log con riferimenti al commit che voglio rimuovere. Ho anche modificato questi file per rimuovere il riferimento prima di eseguire l'origine git push + master. – Jistanidiot

+2

@ Jistanidiot, molto probabilmente hai problemi con la memoria di 'git reflog'. Infatti idea non troppo brillante come 'git reflog' ha i suoi modi per manipolare il suo storage, e hai avuto delle modifiche per rompere qualcosa. – kostix

+2

Grazie! Ho prima fatto un 'git reset --hard ' poi ho usato i tuoi comandi e ha funzionato come un incantesimo! –

Problemi correlati