<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tips on Site de Nemo</title><link>https://nemodzilla.xyz/tips/</link><description>Recent content in Tips on Site de Nemo</description><generator>Hugo -- gohugo.io</generator><language>fr</language><lastBuildDate>Thu, 12 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://nemodzilla.xyz/tips/index.xml" rel="self" type="application/rss+xml"/><item><title>DNS — Tout comprendre sur les enregistrements</title><link>https://nemodzilla.xyz/tips/dns-explained/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://nemodzilla.xyz/tips/dns-explained/</guid><description>&lt;h2 id="cest-quoi-le-dns-"&gt;C&amp;rsquo;est quoi le DNS ?
&lt;/h2&gt;&lt;p&gt;Le DNS (Domain Name System) est l&amp;rsquo;annuaire d&amp;rsquo;Internet. Il fait la correspondance entre un nom de domaine lisible (&lt;code&gt;nemodzilla.xyz&lt;/code&gt;) et une adresse IP machine (&lt;code&gt;185.199.108.153&lt;/code&gt;). Sans DNS, il faudrait retenir des IPs pour chaque site.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="les-enregistrements-de-base"&gt;Les enregistrements de base
&lt;/h2&gt;&lt;h3 id="a--ipv4"&gt;A — IPv4
&lt;/h3&gt;&lt;p&gt;Pointe un domaine vers une adresse &lt;strong&gt;IPv4&lt;/strong&gt; (4 octets).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nemodzilla.xyz → 185.199.108.153
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est l&amp;rsquo;enregistrement le plus courant. Tu en as plusieurs pour ton site (redondance GitHub Pages).&lt;/p&gt;
&lt;h3 id="aaaa--ipv6"&gt;AAAA — IPv6
&lt;/h3&gt;&lt;p&gt;Même chose mais pour une adresse &lt;strong&gt;IPv6&lt;/strong&gt; (128 bits, format &lt;code&gt;2001:db8::1&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nemodzilla.xyz → 2606:50c0:8000::153
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;IPv6 est le successeur d&amp;rsquo;IPv4, nécessaire car les adresses IPv4 sont épuisées.&lt;/p&gt;
&lt;h3 id="cname--alias"&gt;CNAME — Alias
&lt;/h3&gt;&lt;p&gt;Pointe un domaine vers &lt;strong&gt;un autre nom de domaine&lt;/strong&gt; (pas une IP directement).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;www.nemodzilla.xyz → nemodzilla.github.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Un CNAME ne peut pas coexister avec d&amp;rsquo;autres enregistrements sur le même nom. C&amp;rsquo;est pourquoi la racine (&lt;code&gt;@&lt;/code&gt;) utilise des A records et &lt;code&gt;www&lt;/code&gt; utilise un CNAME.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="mx--mail-exchange"&gt;MX — Mail Exchange
&lt;/h3&gt;&lt;p&gt;Indique quel serveur gère les &lt;strong&gt;emails&lt;/strong&gt; pour ton domaine.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nemodzilla.xyz → mail.protonmail.ch (priorité 10)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La priorité (nombre) détermine l&amp;rsquo;ordre de tentative — plus le nombre est bas, plus le serveur est prioritaire.&lt;/p&gt;
&lt;h3 id="txt--texte-libre"&gt;TXT — Texte libre
&lt;/h3&gt;&lt;p&gt;Enregistrement texte libre, utilisé pour la &lt;strong&gt;vérification de domaine&lt;/strong&gt; et les politiques email (SPF, DMARC).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nemodzilla.xyz → &amp;#34;v=spf1 include:_spf.google.com ~all&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="sécurité-email"&gt;Sécurité email
&lt;/h2&gt;&lt;h3 id="spf--sender-policy-framework"&gt;SPF — Sender Policy Framework
&lt;/h3&gt;&lt;p&gt;Un enregistrement &lt;strong&gt;TXT&lt;/strong&gt; qui liste les serveurs autorisés à envoyer des emails en ton nom.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;v=spf1 include:_spf.google.com ~all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;include:&lt;/code&gt; → serveurs autorisés&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~all&lt;/code&gt; → les autres sont suspects (soft fail)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-all&lt;/code&gt; → les autres sont rejetés (hard fail)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sans SPF, n&amp;rsquo;importe qui peut envoyer un email en se faisant passer pour &lt;code&gt;@nemodzilla.xyz&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="dmarc--domain-based-message-authentication"&gt;DMARC — Domain-based Message Authentication
&lt;/h3&gt;&lt;p&gt;Politique qui dit aux serveurs de réception quoi faire si SPF/DKIM échouent.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;v=DMARC1; p=reject; rua=mailto:dmarc@nemodzilla.xyz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;p=none&lt;/code&gt; → surveiller seulement&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p=quarantine&lt;/code&gt; → mettre en spam&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p=reject&lt;/code&gt; → rejeter l&amp;rsquo;email&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="dkim--domainkeys-identified-mail"&gt;DKIM — DomainKeys Identified Mail
&lt;/h3&gt;&lt;p&gt;Signature cryptographique ajoutée aux emails pour prouver qu&amp;rsquo;ils viennent bien de toi. Configuré côté serveur mail, publié en TXT dans le DNS.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="sécurité-dns"&gt;Sécurité DNS
&lt;/h2&gt;&lt;h3 id="dnssec"&gt;DNSSEC
&lt;/h3&gt;&lt;p&gt;Ajoute des &lt;strong&gt;signatures cryptographiques&lt;/strong&gt; aux enregistrements DNS pour éviter l&amp;rsquo;empoisonnement de cache (un attaquant qui redirige ton domaine vers une fausse IP).&lt;/p&gt;
&lt;p&gt;Cloudflare peut l&amp;rsquo;activer en un clic : &lt;strong&gt;DNS&lt;/strong&gt; → &lt;strong&gt;DNSSEC&lt;/strong&gt; → Enable.&lt;/p&gt;
&lt;h3 id="caa--certification-authority-authorization"&gt;CAA — Certification Authority Authorization
&lt;/h3&gt;&lt;p&gt;Définit quelles &lt;strong&gt;autorités de certification&lt;/strong&gt; sont autorisées à émettre des certificats SSL pour ton domaine.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nemodzilla.xyz CAA 0 issue &amp;#34;letsencrypt.org&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Empêche une CA malveillante d&amp;rsquo;émettre un certificat pour ton domaine à ton insu.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="google-analytics--tag-manager"&gt;Google Analytics &amp;amp; Tag Manager
&lt;/h2&gt;&lt;h3 id="google-analytics-ga4"&gt;Google Analytics (GA4)
&lt;/h3&gt;&lt;p&gt;Outil de &lt;strong&gt;mesure d&amp;rsquo;audience&lt;/strong&gt; — il te dit combien de visiteurs tu as, d&amp;rsquo;où ils viennent, quelles pages ils visitent, combien de temps ils restent.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;ID ressemble à : &lt;code&gt;G-XXXXXXXXXX&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour l&amp;rsquo;activer sur Hugo Theme Stack, ajoute dans &lt;code&gt;params.toml&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;analytics&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;google&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;G-XXXXXXXXXX&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="google-tag-manager-gtm"&gt;Google Tag Manager (GTM)
&lt;/h3&gt;&lt;p&gt;Un &lt;strong&gt;conteneur de scripts&lt;/strong&gt; qui permet d&amp;rsquo;ajouter/modifier des scripts de tracking (Analytics, pixels publicitaires, etc.) sans toucher au code du site.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;ID ressemble à : &lt;code&gt;GTM-XXXXXXX&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La différence avec Analytics :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Analytics&lt;/strong&gt; → collecte et analyse les données&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tag Manager&lt;/strong&gt; → gère &lt;em&gt;comment&lt;/em&gt; les scripts sont injectés dans la page&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En pratique pour un site perso, Google Analytics seul suffit largement. Tag Manager est utile quand plusieurs outils de tracking coexistent et qu&amp;rsquo;on veut les gérer sans redéployer le site.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="récapitulatif"&gt;Récapitulatif
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Enregistrement&lt;/th&gt;
&lt;th&gt;Rôle&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;td&gt;Domaine → IPv4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AAAA&lt;/td&gt;
&lt;td&gt;Domaine → IPv6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CNAME&lt;/td&gt;
&lt;td&gt;Domaine → autre domaine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MX&lt;/td&gt;
&lt;td&gt;Domaine → serveur mail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TXT&lt;/td&gt;
&lt;td&gt;Texte libre (SPF, DMARC, vérification)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CAA&lt;/td&gt;
&lt;td&gt;Autorités SSL autorisées&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DNSSEC&lt;/td&gt;
&lt;td&gt;Signatures cryptographiques DNS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPF&lt;/td&gt;
&lt;td&gt;Serveurs mail autorisés&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DMARC&lt;/td&gt;
&lt;td&gt;Politique anti-usurpation email&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Git — Commandes utiles</title><link>https://nemodzilla.xyz/tips/git-cheatsheet/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://nemodzilla.xyz/tips/git-cheatsheet/</guid><description>&lt;h2 id="mettre-à-jour-le-site"&gt;Mettre à jour le site
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Description de ce que j&amp;#39;ai changé&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="enlever-des-fichiers-déjà-ajoutés-au-staging"&gt;Enlever des fichiers déjà ajoutés au staging
&lt;/h2&gt;&lt;p&gt;Si j&amp;rsquo;ai fait un &lt;code&gt;git add&lt;/code&gt; mais que je veux annuler avant de commiter :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Enlever un fichier spécifique du staging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git reset HEAD nom-du-fichier
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Enlever tous les fichiers du staging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git reset HEAD .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Les modifications ne sont pas perdues, elles sont juste &amp;ldquo;déstagées&amp;rdquo;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="voir-ce-qui-est-staged"&gt;Voir ce qui est staged
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="workflow-complet-pour-mettre-à-jour-le-site"&gt;Workflow complet pour mettre à jour le site
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. Voir ce qui a changé&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git status
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. Ajouter les modifications&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. Commiter avec un message clair&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Add writeup: nom-du-challenge&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 4. Pousser → le site se met à jour automatiquement en ~1 minute&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="annuler-le-dernier-commit-sans-perdre-les-modifications"&gt;Annuler le dernier commit (sans perdre les modifications)
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git reset --soft HEAD~1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="rétablir-une-ancienne-version"&gt;Rétablir une ancienne version
&lt;/h2&gt;&lt;h1 id="1-pour-avoir-le-hash-de-la-version"&gt;1. Pour avoir le hash de la version
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git log --oneline
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h1 id="2-restaurer"&gt;2. Restaurer
&lt;/h1&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git revert --no-commit XXXXXXX..HEAD
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Revert to vXX&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>