{"id":229457,"date":"2022-11-05T14:56:00","date_gmt":"2022-11-05T11:56:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229457"},"modified":"2022-11-09T07:09:33","modified_gmt":"2022-11-09T04:09:33","slug":"suppression-de-lhistorique-de-validation-git-local-et-distant","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/suppression-de-lhistorique-de-validation-git-local-et-distant\/","title":{"rendered":"Suppression de l&rsquo;historique de validation Git (local et distant)"},"content":{"rendered":"<p>Bien que la plupart d&rsquo;entre nous sachent que nous ne devrions jamais commettre d&rsquo;informations sensibles dans un r\u00e9f\u00e9rentiel de code source (que ce soit <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>, ou autre), il y a des moments o\u00f9 cela se produit.<\/p>\n<p>La plupart du temps, j&rsquo;imagine que cela se produit chaque fois que nous travaillons sur du code, puis que nous faisons des allers-retours entre l&rsquo;IDE et un terminal et que nous validons du code pour nous assurer que nous ne perdons aucune modification.<\/p>\n<p>Cela se produit assez longtemps, puis nous finissons par valider une cl\u00e9 consommateur et un secret consommateur ou un nom d&rsquo;utilisateur et un mot de passe ou quelque chose de similaire au r\u00e9f\u00e9rentiel.<\/p>\n<p>Heureusement, nous pouvons supprimer les commits pour annuler notre code, mais la plupart des syst\u00e8mes de contr\u00f4le de source finissent par conserver un historique de tout (ce qui est une bonne chose). Mais que se passe-t-il si nous devons supprimer l&rsquo;historique des commits Git dans nos r\u00e9f\u00e9rentiels locaux et distants\u00a0?<\/p>\n<h2>Suppression de l&rsquo;historique des commits Git<\/h2>\n<p>Pour cet exemple, je suppose que vous travaillez avec Git et que vous travaillez avec la ligne de commande (bien que j&rsquo;imagine que la plupart des <a href=\"https:\/\/tommcfarlin.com\/version-control-git\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">interfaces graphiques<\/a> permettraient de le faire).<\/p>\n<p>Ensuite, je suppose que le commit que vous souhaitez supprimer de votre historique est le commit le plus r\u00e9cent et que vous souhaitez simplement revenir en arri\u00e8re.<\/p>\n<p>Pour supprimer compl\u00e8tement l&rsquo;historique des commits git, il n&rsquo;y a que deux choses \u00e0 faire\u00a0:<\/p>\n<ol>\n<li>rebaser sur le commit pr\u00e9c\u00e9dent,<\/li>\n<li>poussez la branche vers la t\u00e9l\u00e9commande.<\/li>\n<\/ol>\n<p>Pour ce faire, v\u00e9rifiez les deux \u00e9tapes du milieu <a href=\"https:\/\/gist.github.com\/tommcfarlin\/a22929625c320d985747a83de31c0618\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ici<\/a>\u00a0:<\/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>Les \u00e9tapes suppl\u00e9mentaires avant et apr\u00e8s les commits principaux vous permettent d&rsquo;obtenir une liste visuelle des commits au cas o\u00f9 vous voudriez choisir un commit s\u00e9par\u00e9 auquel vous souhaitez revenir en arri\u00e8re.<\/p>\n<p>Et vous pouvez ex\u00e9cuter la commande avant et apr\u00e8s les deux autres commandes (comme indiqu\u00e9 dans l&rsquo;essentiel ci-dessus) pour vous assurer que la liste des commits appara\u00eet comme vous le souhaitez dans l&rsquo;historique du projet.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>C&rsquo;est une chose de revenir en arri\u00e8re, mais que se passe-t-il si nous devons supprimer l&rsquo;historique des commits Git dans nos r\u00e9f\u00e9rentiels locaux et distants\u00a0?<\/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":[769,717],"tags":[1167],"class_list":["post-229457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-controle-des-sources","category-developpeur","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=229457"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/229457\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/223741"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=229457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=229457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=229457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}