{"id":1439,"date":"2023-01-17T23:21:05","date_gmt":"2023-01-17T22:21:05","guid":{"rendered":"https:\/\/alessandromasciadri.com\/?p=1439"},"modified":"2023-01-17T23:27:00","modified_gmt":"2023-01-17T22:27:00","slug":"come-modificare-lautore-di-commit-precedenti","status":"publish","type":"post","link":"https:\/\/alessandromasciadri.com\/come-modificare-lautore-di-commit-precedenti\/","title":{"rendered":"Come modificare l&#8217;autore di commit precedenti"},"content":{"rendered":"\t\t<div data-akihiro-type=\"ama-post\" data-akihiro-id=\"1439\" class=\"akihiro akihiro-1439\" data-akihiro-post-type=\"post\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-4cb0222 e-flex e-con-boxed e-con e-parent\" data-id=\"4cb0222\" 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-70fcac7 akihiro-widget akihiro-widget-text-editor\" data-id=\"70fcac7\" 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>Anzitutto apriamo questo articolo precisando che modificare i commit passati \u00e8 un&#8217;operazione sulla commit history di un repository e tale operazione pu\u00f2 essere rischiosa. Questa operazione non va presa troppo alla leggera, infatti durante questo processo di modifica si creeranno nuovi commit objects, i quali possono diventare un serio problema per i nostri collaboratori se hanno gi\u00e0 basato il loro lavoro su alcuni dei commit originali che saranno oggetto di modifica.<\/p><p>In conclusione, <strong>pensa due volte prima di riscrivere la commit history del tuo repository<\/strong>.<\/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-5a6a15e akihiro-widget akihiro-widget-heading\" data-id=\"5a6a15e\" 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\">Modificare l'autore dell'ultimo commit<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-849c50e akihiro-widget akihiro-widget-text-editor\" data-id=\"849c50e\" 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>Nel caso in cui si voglia modificare l&#8217;autore dell&#8217;ultimo commit, Git offre una strada molto facile per farlo.<\/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-8ee392e akihiro-widget akihiro-widget-code-highlight\" data-id=\"8ee392e\" 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 --amend --author=\"Mario Rossi <mario@rossi.org>\"<\/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-7118d6a akihiro-widget akihiro-widget-heading\" data-id=\"7118d6a\" 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\">Modificare l'autore usando Interactive Rebase<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-836f986 akihiro-widget akihiro-widget-text-editor\" data-id=\"836f986\" 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>Interactive Rebase \u00e8 tra i tools di Git quello che pu\u00f2 essere considerato un vero coltellino svizzero che permette di agire su quasi ogni cosa. Essendo per\u00f2 uno strumento tanto potente, significa anche che ci si pu\u00f2 letteralmente sparare nei piedi se lo si utilizza male. Prima di eseguire operazioni di cui non si \u00e8 sicuri \u00e8 meglio documentarsi a <a href=\"https:\/\/git-scm.com\/book\/en\/v2\/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages\">questo link<\/a>.<\/p><p>Il primo passo \u00e8 identificare l&#8217;ultimo commit che consideriamo valido ed invocare il comando di rebase indicandone l&#8217;hash.<\/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-493e577 akihiro-widget akihiro-widget-code-highlight\" data-id=\"493e577\" 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 rebase -i -p 0ad14fa5<\/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-ac75dac akihiro-widget akihiro-widget-text-editor\" data-id=\"ac75dac\" 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>Si aprir\u00e0 un editor dove possiamo indicare tutti i commit di cui vogliamo cambiare i dettagli. Per fare ci\u00f2 anteponiamo la keyword &#8220;edit&#8221; prima dell&#8217;hash.<\/p><p>Git a questo punto ci guider\u00e0 attraverso ogni commit, dandoci la possibilit\u00e0 di cambiarne i dettagli.<\/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-bda4885 akihiro-widget akihiro-widget-code-highlight\" data-id=\"bda4885\" 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>Stopped at 5772b4bf2... Add images to about page\nYou can amend the commit now, with\n\n    git commit --amend\n\nOnce you are satisfied with your changes, run\n\n    git rebase --continue<\/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-78ba8a5 akihiro-widget akihiro-widget-text-editor\" data-id=\"78ba8a5\" 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 lavoro ora consiste nel correggere le informazioni dell&#8217;autore iterando per ogni commit che abbiamo precedentemente marcato con la keyword &#8220;edit&#8221;.<\/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-296e852 akihiro-widget akihiro-widget-code-highlight\" data-id=\"296e852\" 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 --amend --author=\"Mario Rossi <mario@rossi.org>\" --no-edit\ngit rebase --continue<\/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>Anzitutto apriamo questo articolo precisando che modificare i commit passati \u00e8 un&#8217;operazione sulla commit history di un repository e tale operazione pu\u00f2 essere rischiosa. Questa operazione non va presa troppo alla leggera, infatti durante questo processo di modifica si creeranno nuovi commit objects, i quali possono diventare un serio problema per i nostri collaboratori se [&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":[35],"class_list":["post-1439","post","type-post","status-publish","format-standard","hentry","category-programmazione","tag-git"],"_links":{"self":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1439","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=1439"}],"version-history":[{"count":4,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1439\/revisions"}],"predecessor-version":[{"id":1443,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/1439\/revisions\/1443"}],"wp:attachment":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/media?parent=1439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/categories?post=1439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/tags?post=1439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}