2016-01-14 17 views
17

Sto tentando di utilizzare GitHub Desktop (vale a dire l'applicazione GUI - NOT command line) per tornare a un commit precedente (sullo stesso ramo). Qualcosa che avrei pensato è una caratteristica fondamentale, poiché è la ragione principale per l'utilizzo del controllo del codice sorgente in primo luogo.Ritorno a un commit precedente in Github Desktop

Posso vedere che è possibile annullare un commit, ma questo non è ciò che voglio in quanto crea un nuovo commit. Vorrei semplicemente tornare indietro con l'opzione di andare avanti di nuovo, nello stesso modo in cui posso semplicemente saltare a un ramo diverso.

È possibile o si tratta di una limitazione di Github Desktop e devo utilizzare la linea cmd per quello?

+0

dipende da cosa si desidera fare. Se si desidera tornare a livello locale, ad esempio per creare un nuovo ramo, ad esempio, è possibile semplicemente fare doppio clic sul commit o cercare un'opzione che dovrebbe essere chiamata "checkout". Se vuoi annullare le modifiche da quel commit, ripristinarlo è la strada da percorrere, altrimenti cambierebbe la cronologia, il che è sbagliato. – njzk2

risposta

17

In generale, è possibile tornare a un commit nella cronologia con git reset.


Questo non è possibile con GitHub Desktop. GitHub Desktop è più uno strumento per sincronizzare i repository e non un client con interfaccia grafica completa.
Ma questo non significa che devi usare la riga di comando, poiché ci sono alternative. È possibile trovare un elenco here. Per citarne alcuni (che il sostegno git reset):


Ecco come lo si fa sulla riga di comando. La maggior parte dei client fornisce questo nella propria interfaccia utente utilizzando lo stesso vocabolario (in genere, è possibile selezionare un commit e ripristinato su esso tramite menu di scelta rapida).

Si torna alla precedente impegnarsi con

git reset HEAD^ 

o qualche altro commit (ad esempio 3) per

git reset HEAD^3 

o ad uno specifico impegno da

git reset f7823ab 

Tieni presente che, per impostazione predefinita, l'opzione --mixed viene passata a git reset . Quindi, tutte le modifiche apportate, dal momento che il commit è stato reimpostato, saranno comunque presenti.

Per ottenere lo stato originale del commit da "ripristinare", è necessario passare --hard. Ad esempio:

git reset f7823ab --hard 
+1

ok grazie, che è sicuramente utile, ma speravo di poterlo fare in GitHub Desktop utilizzando la GUI –

+0

AFAIK GitHub Desktop è più uno strumento per sincronizzare i tuoi repository. Per le tue esigenze, ti suggerirei di usare un altro client GUI come [TortoiseGit] (https://tortoisegit.org/) o [SourceTree] (https://www.sourcetreeapp.com/).C'è anche un elenco di client GUI [qui] (http://git-scm.com/downloads). Solitamente hanno lo stesso vocabolario di cui sopra. – SevenEleven

+0

Ignoro fortemente di utilizzare i client GUI per le operazioni di git giornaliere. Mi sono trovato ad imparare git way velocemente e ho anche scoperto che alcuni client di gui aggiungono parametri privi di significato ai comandi. Anche i comandi della console non cambiano mai su alcuna piattaforma. – Altoyyr

Problemi correlati