2013-10-02 9 views
27

C'è un'opzione in TortoiseGit per annullare l'ultima commit nel repository?TortoiseGit Annulla ultima commit nel repository

Per errore ho spinto un gran numero di file non necessari nel mio repository git (ramo: master), che ho bisogno di disfare. Ho cercato molto per l'opzione giusta in git tartaruga per annullare la spinta e tornare allo stato prima dell'ultimo commit. Per favore mostrami un modo per annullare il mio ultimo commit.

risposta

26

Se è necessario tornare allo stato precedente prima dell'ultimo commit, selezionare l'azione attivata dall'elenco dei registri e selezionare revert changes by this commit.

Fare attenzione, è necessario commit e push nuovamente le modifiche apportate.

+0

Grazie per quello, ha funzionato bene. Ma ora mi sta dando un altro errore (un messaggio di avviso vuoto con un pulsante 'ok') quando seleziono i file e clicco sul pulsante di commit. Sto usando la versione di tartaruga 1.8.5. Ma questo non sta accadendo per altri repository nel mio PC. – user2742122

37

Se non avete ancora spinto le modifiche (in modo che il commesso è solo locali)

  1. TortoiseGit ->Show log
  2. Selezionare il impegnano a cui si desidera eseguire il rollback a
  3. Reset "<branch>" to this...

Se lo si possiede, è possibile eseguire questa operazione, ma è necessario eseguire anche un force-push (selezionare "sovrascrivi modifiche note").


C'è anche una scorciatoia per quando si vuole solo (1) ripetere l'ultima commit e (2) si non hanno ancora spinto:

  1. Commit -> Controlla "Modificare Ultima Commit"

Questo sostituirà l'ultimo commit con uno nuovo. Ma non consiglio di usare questo - se l'ultimo commit è già stato spinto, si può finire con un grande casino. TortoiseGit sarà non fermarti qui.

Effettuando un Reimposta si è obbligati a dare un'occhiata al registro, e lì si vede se il commit è locale o meno.

+0

Come si rimuove il commit locale non aguzzo? –

+0

Ho risposto alla mia domanda. Non è necessario rimuovere il commit locale non appuntito. Basta fare clic con il pulsante destro del mouse e scegliere "Crea ramo in questo commit" e creare un nuovo ramo. Poi si può seguire il link per rimuovere quel ramo: http://stackoverflow.com/questions/9705534/how-do-i-delete-a-git-branch-with-tortoisegit –

+0

@BarryGuvenkaya: Non credo che si bisogno di creare una nuova filiale Supponendo che non sia stato eseguito il push, quando si resetta il ramo esistente, sarà necessario aggiornare il registro e il commit locale scomparirà da quando si è ripristinato l'indice. – Ellesedil