{"id":229833,"date":"2022-11-05T14:22:00","date_gmt":"2022-11-05T11:22:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229833"},"modified":"2022-11-09T16:34:35","modified_gmt":"2022-11-09T13:34:35","slug":"rimozione-della-cronologia-dei-commit-di-git-sia-locale-che-remota","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/rimozione-della-cronologia-dei-commit-di-git-sia-locale-che-remota\/","title":{"rendered":"Rimozione della cronologia dei commit di Git (sia locale che remota)"},"content":{"rendered":"<p>Sebbene la maggior parte di noi sappia che non dovremmo mai inviare informazioni sensibili a un repository di codice sorgente (che si tratti di <a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Git<\/a>, <a href=\"https:\/\/subversion.apache.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Subversion<\/a> o altro), ci sono momenti in cui accade.<\/p>\n<p>La maggior parte delle volte, immagino che succeda ogni volta che lavoriamo sul codice e poi saltiamo avanti e indietro tra l&#8217;IDE e un terminale e eseguiamo il commit del codice per assicurarci di non perdere alcuna modifica.<\/p>\n<p>Questo accade abbastanza a lungo, e poi finiamo per commettere una chiave del consumatore e un segreto del consumatore o un nome utente e una password o qualcosa di simile al repository.<\/p>\n<p>Fortunatamente, possiamo rimuovere i commit per ripristinare il nostro codice, ma la maggior parte dei sistemi di controllo del codice sorgente finisce per mantenere una cronologia di tutto (il che \u00e8 una buona cosa). Ma cosa succede se dobbiamo rimuovere la cronologia dei commit di Git nei nostri repository locali e remoti?<\/p>\n<h2>Rimozione della cronologia dei commit di Git<\/h2>\n<p>Per questo esempio, presumo che tu stia lavorando con Git e che tu stia lavorando con la riga di comando (anche se immagino che la maggior parte delle <a href=\"https:\/\/tommcfarlin.com\/version-control-git\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">GUI<\/a> consenta la possibilit\u00e0 di farlo).<\/p>\n<p>Successivamente, presumo che il commit che desideri rimuovere dalla cronologia sia il commit pi\u00f9 recente e che tu voglia solo tornare indietro di un passaggio.<\/p>\n<p>Per rimuovere completamente la cronologia dei commit di git, ci sono solo due cose che devi fare:<\/p>\n<ol>\n<li>rebase al commit precedente,<\/li>\n<li>spingere il ramo sul telecomando.<\/li>\n<\/ol>\n<p>Per fare ci\u00f2, controlla i due passaggi centrali <a href=\"https:\/\/gist.github.com\/tommcfarlin\/a22929625c320d985747a83de31c0618\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">qui<\/a> :<\/p>\n<pre><code># First, review the history. (Gotta make sure you're going to roll back to the right place!)\n$ git log --pretty=oneline --abbrev-commit\n\n# Remove HEAD back to the commit prior to the one that has sensitive information\n# and set equal to the last good commit.\n$ git rebase -i HEAD~1\n\n# Push the content to the remote repository and remove it from the history.\n$ git push origin +&lt;name of branch&gt;\n\n# If you want to review the history...\n$ git log --pretty=oneline --abbrev-commit<\/code><\/pre>\n<p>I passaggi aggiuntivi prima e dopo i commit principali ti consentono di ottenere un elenco visivo dei commit nel caso in cui desideri scegliere un commit separato a cui desideri eseguire il rollback.<\/p>\n<p>E puoi eseguire il comando sia prima che dopo gli altri due comandi (come visto nel succo sopra) per assicurarti che l&#8217;elenco dei commit appaia come desideri nella cronologia del progetto.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una cosa \u00e8 ripristinare, ma cosa succede se dobbiamo rimuovere la cronologia dei commit di Git nei nostri repository locali e remoti?<\/p>\n","protected":false},"author":1,"featured_media":223741,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[772,720],"tags":[1168],"class_list":["post-229833","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-controllo-della-fonte","category-sviluppatore","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=229833"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/229833\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/223741"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=229833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=229833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=229833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}