2016-07-15 129 views
5

Ho accidentalmente inserito file dalla mia directory .idea nel mio progetto Django che avevo nel mio file .gitignore. Sto cercando di eliminare completamente il commit dal mio repository bitbucket poiché c'è qualcun altro con cui sto lavorando sul progetto e lui non può estrarre le mie modifiche senza influenzare i propri file .idea. Ho visto altre domande su SO dove dicono di usare git revert, tuttavia ricordo che c'era un altro comando in cui hai spinto l'ultimo commit buono che hai fatto, e dopo tutto quello che è stato cancellato dal master branch. Per esempioCome eliminare commit da bitbucket

Commit Storia:

94ca48e

55fab05

voglio eliminare 94ca48e e 55fab05. C'era un comando che ho trovato una volta in cui si poteva fare il 3813803 il commit più recente, e tutto nel repository remoto dopo quel commit sarebbe stato eliminato, ma non riesco a trovarlo da nessuna parte.

risposta

5

Utilizzare git reset --hard 3813803. Questo non può essere annullato e funziona localmente come remoto.

Dai un'occhiata al git docu di Atlassian here.

vorrei citare anche da lì:

Mentre tornando è progettato per annullare in modo sicuro un pubblico impegno, ripristino git è stato progettato per annullare le modifiche locali. A causa dei loro obiettivi distinti, i due comandi sono implementati in modo diverso: il ripristino completamente rimuove un changeset, mentre il ripristino mantiene il changeset originale e utilizza un nuovo commit per applicare l'annullamento.

git reset è quello da utilizzare qui, però, perché si richiede la cancellazione completa.

+0

Penso che abbia funzionato localmente perché dice "Il tuo ramo è dietro" origine/Estate2016 "di 4 commit e può essere inoltrato rapidamente." ma come faccio a fare lo stesso da remoto? – JBT

+9

@TimothyJosephBaney: usa 'git push --force origin master'. – Sumit

+0

Ricorda che non è tanto una buona idea se non sei solo sul tuo repository! – harmonica141