Per quanto ne so, quando vuoi annullare qualcosa in Git devi trovare esplicitamente il comando per annullare qualsiasi cosa tu abbia fatto e rilasciarlo. Per esempio, uno dei tanti modi di annullare un commesso e rifare è quello di seguire l'esempio da here,Perché non c'è un annullamento/ripristino in Git?
$ git commit ...
$ git reset --soft HEAD^
$ edit
$ git add ....
$ git commit -c ORIG_HEAD
O per annullare un pull, è possibile seguire le istruzioni da here,
$ git reset --hard
Ma questi comandi non necessariamente funzionano in modo intercambiabile. C'è un motivo per cui Git non consente comandi di annullamento e ripetizione semplici? Qualcosa che ha a che fare con la filosofia che ci sta dietro? Inoltre, non ho molta esperienza con altri sistemi di controllo delle versioni, ma nessuno di essi offre un semplice comando di annullamento e ripetizione?
Non sono sicuro, ma penso che si possa fare usando 'git rebase'. Controlla questo http://gitready.com/intermediate/2009/01/31/intro-to-rebase.html – gustavotkg
L'idea è che generalmente non vuoi mai fare cose che ti fanno perdere parti della storia. Annullare un commit rimuoverlo dalla cronologia, quindi di solito non è qualcosa che si farebbe. – poke
@poke Bene, Adobe Photoshop, ad esempio, mantiene una cronologia estesa e consente comunque di annullare/ripristinare. Perché Git non farebbe lo stesso? – john