{"id":1554,"date":"2023-03-08T22:54:43","date_gmt":"2023-03-08T21:54:43","guid":{"rendered":"https:\/\/alessandromasciadri.com\/?p=1554"},"modified":"2023-03-08T23:04:32","modified_gmt":"2023-03-08T22:04:32","slug":"come-annullare-lultimo-git-local-commit","status":"publish","type":"post","link":"https:\/\/alessandromasciadri.com\/come-annullare-lultimo-git-local-commit\/","title":{"rendered":"Come annullare l&#8217;ultimo Git local commit"},"content":{"rendered":"\t\t<div data-akihiro-type=\"ama-post\" data-akihiro-id=\"1554\" class=\"akihiro akihiro-1554\" data-akihiro-post-type=\"post\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-6ea61f7 e-flex e-con-boxed e-con e-parent\" data-id=\"6ea61f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e902859 akihiro-widget akihiro-widget-text-editor\" data-id=\"e902859\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Se accidentalmente si esegue un commit dei file sbagliati, ma non si \u00e8 ancora eseguito il push delle modifiche, si pu\u00f2 facilmente tornare allo stato precedente usando pochi semplici comandi.<\/p><p>Ipotizziamo ora di aver eseguito erroneamente questo commit:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-27d6614 akihiro-widget akihiro-widget-code-highlight\" data-id=\"27d6614\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>git commit -m \"Uno sfavillante commit errato\"<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4872d4e akihiro-widget akihiro-widget-heading\" data-id=\"4872d4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Come annullare un commit errato<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ea55e55 akihiro-widget akihiro-widget-text-editor\" data-id=\"ea55e55\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>I comandi git da eseguire sono pochi, ma decisamente efficaci e sono condensati tutti qui:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-29a386d akihiro-widget akihiro-widget-code-highlight\" data-id=\"29a386d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>git reset HEAD\n\n[modifiche ai file]\n\ngit add .\ngit commit -c ORIG_HEAD<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-3e94a47 akihiro-widget akihiro-widget-text-editor\" data-id=\"3e94a47\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Proviamo ora ad entrare maggiormente nel dettaglio spiegandoli uno a uno.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-92d0a66 akihiro-widget akihiro-widget-heading\" data-id=\"92d0a66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Primo step: git reset<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-3a6f2ed akihiro-widget akihiro-widget-text-editor\" data-id=\"3a6f2ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Il primissimo passo \u00e8 git reset, che \u00e8 il comando responsabile dell&#8217;annullamento dell&#8217;ultimo commit lasciando il working tree (lo stato dei nostri file) intatto. Quindi se il nostro commit contiene sia file corretti che file errati, dobbiamo ricordarci che quelli corretti dovranno essere aggiunti nuovamente.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4f45119 akihiro-widget akihiro-widget-heading\" data-id=\"4f45119\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Secondo step: modifiche ai file<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e848cf5 akihiro-widget akihiro-widget-text-editor\" data-id=\"e848cf5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>A questo punto possiamo eseguire tutte le correzioni necessarie nel nostro working tree modificando il codice o rimuovendo eventuali errori commessi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e608303 akihiro-widget akihiro-widget-heading\" data-id=\"e608303\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Terzo step: git add<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-7a1febc akihiro-widget akihiro-widget-text-editor\" data-id=\"7a1febc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Possiamo ora aggiungere tutti i nuovi file che saranno oggetto del nuovo commit.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-2728fc3 akihiro-widget akihiro-widget-heading\" data-id=\"2728fc3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Quarto step: git commit<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4a14a25 akihiro-widget akihiro-widget-text-editor\" data-id=\"4a14a25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Questo passaggio \u00e8 fondamentale, \u00e8 infatti quando tutte le nuove modifiche vengono applicate con un nuovo (e corretto) commit. Il comando reset lanciato all&#8217;inizio aveva copiato il vecchio head in .git\/ORIG_HEAD, ora il comando commit -c ORIG_HEAD apre un editor e mostra il messaggio del vecchio (ed errato) commit permettendoci cos\u00ec di modificarlo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-8ef1405 akihiro-widget akihiro-widget-heading\" data-id=\"8ef1405\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Conclusione<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-28ca6a2 akihiro-widget akihiro-widget-text-editor\" data-id=\"28ca6a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Dopo aver rimediato all&#8217;errore, se vogliamo inviare il nostro commit al server, possiamo eseguire un semplice e tradizionale push:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-0fa82ee akihiro-widget akihiro-widget-code-highlight\" data-id=\"0fa82ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-okaidia copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>git push<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Se accidentalmente si esegue un commit dei file sbagliati, ma non si \u00e8 ancora eseguito il push delle modifiche, si pu\u00f2 facilmente tornare allo stato precedente usando pochi semplici comandi. Ipotizziamo ora di aver eseguito erroneamente questo commit: git commit -m &#8220;Uno sfavillante commit errato&#8221; Come annullare un commit errato I comandi git da eseguire [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[2,35],"class_list":["post-1554","post","type-post","status-publish","format-standard","hentry","category-programmazione","tag-code","tag-git"],"_links":{"self":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1554","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/comments?post=1554"}],"version-history":[{"count":4,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1554\/revisions"}],"predecessor-version":[{"id":1558,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1554\/revisions\/1558"}],"wp:attachment":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/media?parent=1554"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/categories?post=1554"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/tags?post=1554"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}