<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>TefDesign</title>
	<atom:link href="http://www.tefdesign.fr/feed/" rel="self" type="application/rss+xml"/>
	<link>https://www.tefdesign.fr/</link>
	<description>Frontend, Javascript, Git, Dessins... bref tout ce que je veux !</description>
	<lastBuildDate>Wed, 10 Sep 2025 15:26:11 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
<site xmlns="com-wordpress:feed-additions:1">21861343</site>	<itunes:explicit>no</itunes:explicit><copyright>Il est strictement interdit de redistribuer,  copier, republier ce contenu sur votre site, blog ou forum. Copyright © TefDesign 2011 –  All rights reserved (Tous droits réservés).</copyright><itunes:image href="http://www.tefdesign.fr/wp-content/themes/TefSite/img/logo.png"/><itunes:keywords>wordpress,tutoriels,tutorial,css,pixelmator,tefdesign,tef,site</itunes:keywords><itunes:summary>Tutoriels Vidéos sur Wordpress, Pixelmator, CSS, etc.</itunes:summary><itunes:subtitle>Tutoriels Vidéos de TefDesign.fr</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Podcasting"/></itunes:category><itunes:author>TefDesign</itunes:author><item>
		<title>Les Server Components </title>
		<link>https://www.tefdesign.fr/2025/09/les-server-components/</link>
					<comments>https://www.tefdesign.fr/2025/09/les-server-components/#respond</comments>
		
		
		<pubDate>Wed, 10 Sep 2025 14:36:26 +0000</pubDate>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[NextJS]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[nextjs]]></category>
		<category><![CDATA[react]]></category>
		<category><![CDATA[server components]]></category>
		<guid isPermaLink="false">https://www.tefdesign.fr/?p=1449</guid>

					<description><![CDATA[Les Server Components en React exécutent du code côté serveur, améliorant performances et simplicité d'accès aux données, tout en restant complémentaires aux Client Components. Utilisation recommandée avec Next.js.]]></description>
										<content:encoded><![CDATA[
<h2>Qu&rsquo;est-ce que les Server Components ?</h2>
<p>En React, tout le code s&rsquo;exécute traditionnellement du côté client (navigateur). Mais avec les Serveur Components (RSC de son p&rsquo;tit nom doux), une partie du composant peut être exécuté du côté du serveur, ce qui permet d&rsquo;envoyer au client du HTML pré-rendu avec données. L&rsquo;avantage dans tout ça, c&rsquo;est que le client n&rsquo;a pas besoin ni de télécharger ni d&rsquo;exécuter le code JavaScript de ces composants.</p>
<p> </p>



<h2>Ok mais alors, à quoi cela sert ?</h2>
<p>Les RSC apportent plusieurs avantages : </p>
<ul>
<li>Il y a moins de JavaScript à exécuter côté client. La page sera plus légère, donc plus rapide à afficher</li>
<li>On peut faire un accès direct à la base de données sans passer par une API Rest par exemple. <br />Pour être plus précis, sans les RSC, j&rsquo;aurais besoin d&rsquo;une API pour accéder à ma database du côté Front. Le back va alors récupérer les datas du côté de la database et les renvoyer au front qui les affichera.<br />Avec les RSC, le code étant exécuté du côté serveur, l&rsquo;accès à la database se fait en direct. Plus besoin d&rsquo;une API pour l&rsquo;interroger ! Et donc pas de fetch côté front et gain de performance et plus simple. Attention cependant, les RSC ne remplacent pas totalement les API. On en aura souvent besoin. Le but est juste de dire que l&rsquo;on peut, dans certains cas, simplifier en passant par des RSC.</li>
<li>Top côté SEO ! Vu que les datas sont rendues côté serveur et arrive toutes cuites au front, lors de la lecture de la page, tout est déjà rendu et donc mieux pour le SEO pour nos amis comme Google et compagnie. Vraiment un gros plus pour la team SEO qui se tirera moins les cheveux ensuite :)</li>
<li>On peut mettre une architecture hybride en place. En d&rsquo;autres termes, tu peux dire que ton composant RSC à une partie qui doit s&rsquo;exécuter côté client (<strong>« use client »</strong>).</li>
</ul>
<p> </p>



<h2>Mais c&rsquo;est génial, je vais en mettre partout !!</h2>
<p>Oui mais non en fait :) Il y a tout de même des points de vigilances à noter :</p>
<ul>
<li>Si vous avez besoin d&rsquo;un composant interactif avec un useState ou un onClick, cela doit rester un Client Component.</li>
<li>La frontière entre Client et Server Component ne sont pas toujours très simples. Prenons l&rsquo;exemple d&rsquo;un panier. On pourrait se dire que ce serait cool d&rsquo;en faire un RSC. Mais on a besoin de le mettre à jour, ajouter un code promo par exemple. Et là bim ! Pas possible, cela doit rester côté client. Cela oblige à bien découper ses composants.</li>
<li>Aujourd&rsquo;hui, c&rsquo;est vraiment avec NextJS que cela peut être utilisé. Sur React « pur », comme l&rsquo;indique la documentation (https://fr.react.dev/reference/rsc/server-components), les RSC sont encore « expérimental » et comportent souvent des changements. Libre à vous de l&rsquo;utiliser mais attention tout de même sur des applications à mettre en prod :)</li>
<li>Les outils de debug sont encore jeunes et parfois le debug peut rendre confuse la résolution :)</li>
<li>Les RSC sont performants oui mais attention, vous déplacez la charge de client à serveur. Et c&rsquo;est pas une bonne chose non plus. Et par conséquent, les perfs ne seront pas forcément mieux si on en abuse.</li>
<li>Enfin le côté hybride côté avantage est aussi un inconvénient. À <span style="font-size: revert; color: initial; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;">trop vouloir être modulaire, le code en devenir illisible en mélangeant server et client components.</span></li>
</ul>
<p> </p>



<h2>Vous prendrez bien un p&rsquo;tit verre ?</h2>
<p>Ha non pardon c&rsquo;est plutôt d&rsquo;hydratation de datas dont nous allons parler ici ^^</p>
<h3>Kezako l&rsquo;hydratation ?</h3>
<p>L&rsquo;hydratation, c&rsquo;est le moment ou votre page se reveille côté client. Quand vous faites du pain, votre levure se réveille avec de l&rsquo;eau. Bah dans notre cas, l&rsquo;eau c&rsquo;est les datas reçues et notre levure, c&rsquo;est notre page côté client (désolé j&rsquo;ai fais du pain maison hier&#8230;)</p>
<p>En gros, le serveur envoi du HTML tout prêt. Le navigateur (notre client) affiche lui une version un peu endormie, sans interactivité de notre page. Le JavaScript se charge et React commence à hydrater notre page avec nos datas. Après cela, nos boutons etc sont enfin vivant :)</p>
<p>Exemple :</p>
<p><code>// Code avant hydratation<br />&lt;button&gt;Cliquez-moi&lt;/button&gt;</code></p>
<p><code>// Code après hydratation<br />&lt;button onClick={handleClick}&gt;Cliquez-moi&lt;/button&gt;</code></p>
<p>Magnifique n&rsquo;est-ce pas ?</p>
<p> </p>



<h2>Quand sont rendus les Server Components ?</h2>
<p>Point important à retenir : les RSC ne sont pas rendus « en temps réel » à chaque visite. Il y a deux moments possibles :</p>
<h3> </h3>
<h3><span class="token">Au moment du build (Static)</span> :</h3>
<p><span class="token">&#8211;</span> Pour du contenu qui ne change pas souvent (page « À propos », documentation)</p>
<p><span class="token">&#8211;</span> Next.js génère le HTML une seule fois lors de la compilation</p>
<p><span class="token">&#8211;</span> Super performant car le serveur n&rsquo;a aucun calcul à faire</p>
<p><code>
// Static - rendu au build
<br />export default async function AboutPage() {<br />
    return <span class="token">&lt;</span><span class="token">h1</span><span class="token">&gt;</span>À propos de nous<span class="token">&lt;/</span><span class="token">h1</span><span class="token">&gt;</span>; // Pas de données dynamiques<br />}</code></p>
<p> </p>
<h3><span class="token">À chaque requête (Dynamic) </span>:</h3>
<p><span class="token">&#8211;</span> Quand vous avez besoin de données fraîches (posts d&rsquo;un blog, profil utilisateur)</p>
<p><span class="token">&#8211;</span> Le serveur exécute le composant à chaque visite</p>
<p><span class="token">&#8211;</span> Plus lent qu&rsquo;en static, mais données toujours à jour</p>
<p><code><code>
// Dynamic - rendu à chaque requête
<br />export default async function UserProfile({ userId }) {<br />

    const user = await getUser(userId); // Requête DB à chaque visite<br />

    return <span class="token">&lt;</span><span class="token">h1</span><span class="token">&gt;</span>Profil de {user.name}<span class="token">&lt;/</span><span class="token">h1;<br /> }</span></code></code></p>



<h2>Comment je met en place un Server Component ?</h2>
<p>Bah en fait, un composant avec NextJS, c&rsquo;est automatiquement un RSC :) Mais attention, si vous tentez par exemple de mettre un onClick ou un useState dans un composant, vous aurez un message d&rsquo;erreur qui vous indique qu&rsquo;il manque <strong>« use client »</strong>. Ce dernier permet de convertir le composant en Client Component et devrait être écrit tout en haut du fichier.</p>
<p> </p>



<h2>Exemple de Server Component</h2>
<p>Pour faire très simple, voici un exemple de RSC qui affichera la date du côté du serveur :</p>
<p><code><code>
// app/CurrentDate.js (Server Component par défaut)
<br />
export default function CurrentDate() {
<br />    const date = new Date().toLocaleString("fr-FR", {
<br />        dateStyle: "full",
<br />        timeStyle: "short",
<br />    });
<br />    return &lt;p&gt;Date et heure générées côté serveur : {date}&lt;/p&gt;<br /></code></code><code>;
}</code></p>
<p>Comme vous pouvez le voir, il n&rsquo;y a aucun <strong>« use client »</strong>, pas d&rsquo;interaction côté front que ce soit avec un useState ou un event de type onClick par exemple. Donc nous sommes en présence d&rsquo;un composant Server Component.</p>
<p> </p>



<h2>Mais attends, C&rsquo;est quoi la différence entre du SSR et RSC ?</h2>
<p>Beaucoup de développeur mélange le Server Components avec le Server-Side Rendering. Voici les différences :</p>
<h3>SSR</h3>
<ul>
<li>Tout le composant s&rsquo;exécute côté serveur</li>
<li>Puis tout le JavaScript est envoyé au client pour l&rsquo;hydratation (non on parle toujours pas de boire, un peu de sérieux siouplay)</li>
<li>Enfin le client télécharge <strong>tout</strong> le code,même les parties statiques</li>
</ul>
<h3>RSC</h3>
<ul>
<li>Seuls les composants où on a indiqué <strong>« use client »</strong> sont envoyé au navigateur</li>
<li>Le reste (Server Components) reste sur le serveur</li>
<li>Bundle JavaScript du coup plus petit et plus léger.</li>
</ul>
<p> </p>



<h2>Conclusion</h2>
<p class="p1">Comme tout outil, il peut être utile, mais tout dépend de la façon dont vous l’utilisez. Si vous l&rsquo;utilisez avec intelligence, vous ferez des merveilles. Mais si vos perfs chutent et que vous en abusez, cela se ressentira également. Et on a pour habitude de dire qu&rsquo;en général, le problème est entre la chaise et l&rsquo;écran ;) </p>
<p class="p1">Si vous débutez avec les Server Components, le plus simple est de tester avec <span class="s1"><b>Next.js (App Router)</b></span> qui est aujourd’hui la référence.</p>
<p>Pour résumer :</p>
<ul>
<li>Les Server Components permettent de réduire le JavaScript côté client et d’accéder directement aux données serveur.</li>
<li>Ils ne remplacent pas les Client Components, mais les complètent.</li>
<li>Aujourd’hui, leur usage le plus courant est via <span class="s1"><b>Next.js (App Router)</b></span>.</li>
<li>Bien utilisés, ils offrent un gros gain en performance et en simplicité, mais il faut apprendre à jongler entre serveur et client.</li>
</ul>



<p class="p1">Merci les ami.e.s et à bientôt !</p>
<p>Longue vie et Prospérité</p>
<p style="text-align: center;"><img fetchpriority="high" decoding="async" class="aligncenter" src="https://media.giphy.com/media/C5hL7OSWyACFW/giphy.gif" alt="Longue vie et prospérité" width="500" height="377" /></p>


<p><map name='google_ad_map_1449_f5380a0c2c93d793'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1449?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1449_f5380a0c2c93d793' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1449&amp;url= https%3A%2F%2Fwww.tefdesign.fr%2F2025%2F09%2Fles-server-components%2F' /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.tefdesign.fr/2025/09/les-server-components/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1449</post-id>	<dc:creator>TefDesign</dc:creator></item>
		<item>
		<title>Introduction au container query css</title>
		<link>https://www.tefdesign.fr/2024/07/introduction-aux-container-query-css/</link>
					<comments>https://www.tefdesign.fr/2024/07/introduction-aux-container-query-css/#comments</comments>
		
		
		<pubDate>Wed, 17 Jul 2024 15:55:36 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Tuto]]></category>
		<category><![CDATA[container query]]></category>
		<category><![CDATA[containers queries]]></category>
		<category><![CDATA[developpeur front-end]]></category>
		<category><![CDATA[intégration]]></category>
		<category><![CDATA[responsive]]></category>
		<guid isPermaLink="false">https://www.tefdesign.fr/?p=1413</guid>

					<description><![CDATA[Introduction rapide sur les containers queries en CSS]]></description>
										<content:encoded><![CDATA[


<p style="text-align: center;"><a href="https://www.tefdesign.fr/wp-content/uploads/2024/07/8xbyu5.jpg"><img decoding="async" class="size-full wp-image-1414 aligncenter" src="https://www.tefdesign.fr/wp-content/uploads/2024/07/8xbyu5.jpg" alt="" width="545" height="458" srcset="https://www.tefdesign.fr/wp-content/uploads/2024/07/8xbyu5.jpg 545w, https://www.tefdesign.fr/wp-content/uploads/2024/07/8xbyu5-318x267.jpg 318w, https://www.tefdesign.fr/wp-content/uploads/2024/07/8xbyu5-157x132.jpg 157w" sizes="(max-width: 545px) 100vw, 545px" /></a></p>



<p>Hello les ami.e.s !<br>Aujourd’hui je vais vous faire un petit article sur les containers queries. Accrochez votre ceinture :)</p>



<p class="has-medium-font-size"><strong>Problématique</strong></p>



<p>Il y a peu de temps, j’ai été confronté à une problématique dans mon travail. On m’a demandé de créer un composant Twig. Il fallait qu’il soit adaptable en desktop et mobile. Je me suis dit : ok easyyy ! Un p’tit coup de media queries et le tour est joué :) La vie est belle quoi. Mais là, je vois la ligne en dessous sur le ticket Jira : Ha, et il faut qu’on puisse le mettre aussi dans une sidebar en affichage mobile. Bon, autant vous dire que mes plans étaient devenus quelque peu foireux. J’aurais bien pu passer un paramètre dans mon composant Twig genre mobile ou desktop, mais pour l’avoir déjà fait, c’est pas hyper fifou.</p>



<p class="has-medium-font-size"><strong>Et c’est là que les containers queries sortent du chapeau !</strong></p>



<p>Pour répondre à ça, j’ai utilisé les containers queries. En fait, j’avais déjà repéré cette technique CSS dans un article sur FrontendMasters (https://frontendmasters.com/blog/container-queries-and-units/) en décembre 2023. Mais je n’avais jamais tenté son utilisation. De mémoire, je crois que ce n’était pas disponible encore sur tous les navigateurs à ce moment-là, mais je ne mettrais pas ma main à couper ^^</p>



<p class="has-medium-font-size"><strong>Dis, c’est quoi la différence entre les médias queries et les containers queries ?</strong></p>



<p>La réponse est simple : les médias queries vous permettront d’utiliser la résolution de l’écran en point de référence tandis que les containers queries utiliseront le container parent en référence. En gros dans mon cas, je ne peux pas utiliser les médias queries car mon composant devra s’afficher en version mobile alors que j’affiche une version desktop. Mon composant serait totalement pété dans la sidebar !</p>



<p class="has-medium-font-size"><strong>Comment que ca marche-t’y donc ?</strong></p>



<p class="p1">Déjà, je vous mets en garde tout de suite : cet article n’est pas un tutoriel complet sur les containers queries mais seulement (et c’est déjà pas mal hein !) pour vous mettre un pied à l’étrier. Je ne remplacerais pas la documentation MDN. El Famous RTFM :P</p>
<p class="p1">Mettons-nous en situation et partons du même principe avec un élément main et un élément aside avec un width totalement arbitraire de 350px.</p>
<p class="p1">Voici la tête de mon « composant » :</p>
<p class="p1"><code>&lt;div class="main-component"&gt;<br />    &lt;div class="component"&gt;<br />        &lt;img src="https://cataas.com/cat?width=300&amp;height=300" alt=""&gt;<br />        &lt;p&gt;My legend&lt;/p&gt;<br />    &lt;/div&gt;<br />&lt;/div&gt;</code></p>
<p> </p>
<blockquote>
<p class="p1"><strong><em>A noter, instant promo, <a href="http://cataas.com" target="_blank" rel="noopener"><span class="s1">cataas.com</span></a> est un super site d’image de chat pour vos placeholders :) C’est gratuit, allez-y !</em></strong></p>
</blockquote>
<p> </p>
<p class="p1">Je dois d’abord donner un nom et un type de comportement à mon container query :</p>
<p class="p1"><code>.main-component {<br />    container-name: myComponent;<br />    container-type: inline-size;<br />}</code></p>
<p class="p1">Je définis le type en <strong>inline-size</strong> car je veux checker le comportement sur le <strong>width</strong> (si j’ai bien activé tous mes neurones :P) N’hésitez pas à dire en commentaire si besoin.</p>
<p class="p1">Le nom va me permettre de définir un comportement pour ce bloc de code et pas un autre.</p>
<p class="p1">Maintenant, je veux dire que mon bloc se comporte comme ceci :<span class="Apple-converted-space">  </span></p>
<ul>
<li class="p1">l’image doit être en format petit et arrondi</li>
<li class="p1">le nom sur la droite de l&rsquo;image</li>
</ul>
<p class="p1">Bon c’est simple, <strong>en mobile first</strong>, on va directement le définir comme ça :</p>
<p class="p1"><code>.component {<br />    display: flex;<br />    align-items: center;<br />    gap: 16px;<br />    img {<br />        width: 100px;<br />        height: 100px;<br />        border-radius: 100%;<br />    }<br />}</code></p>
<p class="p1">Maintenant, je veux que, lorsque mon bloc s’affiche dans un espace de plus de 350px (donc plus grand que mon aside) :</p>
<ul>
<li class="p1">l’image doit faire 300px en <strong>width</strong> et <strong>height</strong></li>
<li class="p1">un <strong>border-radius</strong> de 16px</li>
<li class="p1">le texte dois s’afficher dessous et centrer sous l’image.</li>
</ul>
<p class="p1">On écrira du coup le code suivant :</p>
<p class="p1"><code>@container myComponent (min-width: 351px) {<br />    .component {<br />        display: inline-block;<br />        text-align: center; <br />        img {<br />            width: 300px;<br />            height: 300px;<br />            border-radius: 16px;<br />        }<br />    }<br />}</code></p>
<p class="p1"><strong>@container</strong> rappelle l’utilisation du <strong>@media</strong>. On appelle le nom <strong>myComponent</strong> défini dans <strong>container-name</strong> plus haut. Et enfin le reste du code vous comprenez :)</p>
<p class="p1">Vous voyez, rien de bien compliqué.</p>
<p class="p1">Je vous ai fait un CodePen très rapide pour les besoins de l’article. N’hésitez pas à le checker (et checker mes autres Pen si vous savez pas quoi faire ou si vous êtes curieux ^^ Vous n’imaginez pas tout ce que l’on peut faire avec le CSS :)</p>
<p> </p>
<p class="codepen" style="height: 500px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-height="500" data-default-tab="result" data-slug-hash="gONPMzw" data-pen-title="Introduce to Containers queries" data-user="Tef">See the Pen <a href="https://codepen.io/Tef/pen/gONPMzw"> Introduce to Containers queries</a> by Stephane (<a href="https://codepen.io/Tef">@Tef</a>) on <a href="https://codepen.io">CodePen</a>.</p>
<p><script async="" src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script></p>
<p> </p>
<p class="p1">Les commentaires sont ouverts si vous avez besoin de vous exprimer, m’envoyer du love ou me rendre riche et célèbre (ouais, là non, je ne pense pas).</p>
<p class="p1">Merci les ami.e.s et à bientôt !</p>
<p> </p>
<p>Longue vie et Prospérité</p>
<p> </p>
<p style="text-align: center;"><img decoding="async" class="aligncenter" src="https://media.giphy.com/media/C5hL7OSWyACFW/giphy.gif" alt="Longue vie et prospérité" width="500" height="377" /></p>
<p><map name='google_ad_map_1413_f5380a0c2c93d793'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1413?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1413_f5380a0c2c93d793' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1413&amp;url= https%3A%2F%2Fwww.tefdesign.fr%2F2024%2F07%2Fintroduction-aux-container-query-css%2F' /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.tefdesign.fr/2024/07/introduction-aux-container-query-css/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1413</post-id>	<dc:creator>TefDesign</dc:creator></item>
		<item>
		<title>Git : Les commandes de base</title>
		<link>https://www.tefdesign.fr/2022/10/les-commandes-de-base-de-git/</link>
					<comments>https://www.tefdesign.fr/2022/10/les-commandes-de-base-de-git/#comments</comments>
		
		
		<pubDate>Mon, 31 Oct 2022 10:00:00 +0000</pubDate>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Tuto]]></category>
		<guid isPermaLink="false">https://www.tefdesign.fr/?p=1298</guid>

					<description><![CDATA[Git vous intimide et vous ne savez pas par commencer et quelle commande utiliser au début ? Venez lire, c'est par ici :)]]></description>
										<content:encoded><![CDATA[

<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://i.gifer.com/3sar.gif" alt=""/></figure></div>


<h2><strong>Avant toutes choses :</strong></h2>
<p>Cela fait un moment que je n&rsquo;ai pas écrit d&rsquo;article. J&rsquo;étais pleins de bonnes résolutions (comme d&rsquo;hab&rsquo; quoi), mais la charge de travail, le Covid (saloperie va) et un changement de taf et de logement avec la construction de ma maison on fait que j&rsquo;ai un peu délaissé ce blog. L&rsquo;article que vous allez lire est en brouillon depuis 2 ans !! Autant dire qu&rsquo;il a eu le temps de bien se reposer ^^ Bref j&rsquo;ai fais un p&rsquo;tit coup de ménage et je le poste tout de même :) Bonne lecture !</p>
<p>P.S : Putain ca fait plaisir de vous revoir :P</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" src="https://thumbs.gfycat.com/KlutzyImpracticalFlea-max-1mb.gif" alt=""/></figure></div>


<p>Salut les amis !</p>
<p style="text-align: left;">Bon ce n&rsquo;est pas parce qu&rsquo;on parle de code ici qu&rsquo;on ne doit pas connaitre les bases du travail collaboratif avec git. Mon but ne sera pas de vous faire un cours sur git avec création d&rsquo;un repo car la doc est assez bien foutu pour ça. Mais cet article est plus là pour vous donner les billes pour « pousser » ou « récupérer » vos modifications et ainsi sécuriser votre travail en cas de crash de disque dur ou tout simple pour bosser avec d&rsquo;autres personnes.</p>
<p> </p>
<h2>Déjà pourquoi connaitre ces commandes de base Git ?</h2>
<p>Il est important de comprendre ce que l&rsquo;on fait. Vous pourriez très bien utiliser votre IDE et cliquer sur les boutons à disposition. Après tout, tout est là pour ça et pour vous simplifier la tâche. Mais perso, même si j&rsquo;utilise PHPStorm au quotidien, je préfère encore faire manuellement dans mon terminal mes push, rebase, commit, etc. Et je pense sincèrement qu&rsquo;il est important de savoir ce qu&rsquo;il y a derrière une action et pourquoi on l&rsquo;utilise.</p>
<p> </p>
<h2>Commençons !</h2>
<p>Je pars du principe que vous avez initialisé votre repository (repo pour les intimes) dans votre projet.</p>
<p><strong><span style="text-decoration: underline;">A noter :</span></strong> on lance une commande git toujours en mettant <strong>git</strong> en premier.</p>
<p>Voici donc quelques commandes non exhaustives qui pourront vous servir. Je vais sûrement en oublier, donc ne criez pas au scandale s&rsquo;il en manque mais le but est juste de donner des premières commandes et de ne pas réécrire la documentation ;) :</p>
<ul>
<li><strong>git status</strong> : Avec cette commande vous allez voir le statut de tout ce qui est en cours de modifications en local et qui n&rsquo;a pas été push sur votre repo. (nous verrons plus bas ce que c&rsquo;est que le terme <strong>push</strong>). Exemple : <br /><a href="https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus.png"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1364" src="https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus.png" alt="" width="1086" height="184" srcset="https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus.png 1086w, https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus-573x97.png 573w, https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus-1024x173.png 1024w, https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus-768x130.png 768w, https://www.tefdesign.fr/wp-content/uploads/2022/10/gitstatus-779x132.png 779w" sizes="auto, (max-width: 1086px) 100vw, 1086px" /></a></li>
<li><strong>git add</strong> : Alors là, je ne vais pas réexpliquer car <a href="https://www.tefdesign.fr/2020/05/faire-un-git-add-propre-et-efficace/" target="_blank" rel="noopener">j&rsquo;ai écris un article assez détailler sur le sujet par ici</a> :)<br /><br /></li>
<li><strong>git commit</strong> : Cela vous permet de valider les modifications et de les réserver dans un coin. Attention à ce stade vous n&rsquo;avez toujours rien envoyé sur le repo. A noter que vous pouvez ajouter des paramètres et faire un <strong>git commit -m « mon message »</strong> mais je ne vous conseille pas de faire ceci. Avec un simple commit vous serez plus à l&rsquo;aise pour saisir un chouette commit bien structuré ;) On y reviendra plus tard. <br />Vous pouvez également cumuler plusieurs git commit si besoin. Toutefois, éviter de faire plusieurs git commit juste pour une faute d&rsquo;orthographe par exemple. Essayez d&rsquo;être structuré dans vos actions :) Au pire, <a href="https://www.tefdesign.fr/2019/09/git-rebase-est-ton-ami/" target="_blank" rel="noopener">utiliser un rebase pour merger vos commits</a>.<br /><br /></li>
<li><strong>git push</strong> : push va permettre de « pousser » (push = pousser vers votre repo) vos modifications sur votre repo. Plus exactement, cela va pousser les modifications sur la branche distance équivalente à la votre en local sur le repo. C&rsquo;est à ce moment-là que votre git commit va être envoyé.<br />A noter qu&rsquo;à la création d&rsquo;une branche, le premier push que vous ferez risque de râler un peu :P Sur le premier push au lieu d&rsquo;un simple <strong>git push</strong> vous devrez faire <strong>git push &#8211;set-upstream origin fix/ma-branche2 </strong>(ou <strong>git push -u origin fix/ma-branche2</strong> pour la version raccourcie). En gros pour schématiser un peu, un push va chercher sa référence sur le « catalogue » distant pour lui envoyer ses modifications. S&rsquo;il ne le trouve pas, il vous insultera ^^ Donc, le <strong>-u</strong> va permettre de créer une référence dans le catalogue distant, puis pousser ses modifications<br /><br /></li>
</ul>
<ul>
<li><strong>git pull</strong> : pull va permettre de « récupérer » (pull = tirer vers soit, ramener du repo vers notre local) les dernières modifications qui sont sur votre repo. En général, on utilise cela quand vos collègues ont mergés leurs branches et que vous voulez mettre à jour votre local pour récupérer leur taf.</li>
</ul>
<p> </p>
<ul>
<li><strong>git checkout feat/ma-branche</strong> : vous permet de basculer sur une autre branche (en l&rsquo;occurrence, <em>ma-branche</em> dans notre exemple et se situe dans <em>feat</em>)</li>
<li><strong>git checkout -b fix/ma-branche2</strong> : vous permet de créer une nouvelle branche grâce au paramètre <strong>-b</strong> et de basculer dessus. Dans notre exemple nous venons de créer une branche ma-branche2 dans fix et nous avons basculé dessus automatiquement.<br /><br /></li>
<li><strong>git log</strong> : vous permet de voir les logs de tous les push que vous et vos collègues ont fait sur la branche<br /><br /></li>
<li><strong>git fetch</strong> : vous permet de mettre à jour les infos sur la branche distante sur laquelle vous travaillez. En gros voyez ça comme une mise à jour du catalogue que vous avez en local. Pour schématiser, le fetch va interroger votre repo, récupérer la liste des branches disponibles et leurs états et mettre à jour votre « catalogue » local. Attention fetch ne remplace pas pull. A noter que pull fait les 2 : il fait d&rsquo;abord un fetch et ensuite il met à jour la branche en local. <br /><span style="text-decoration: underline;"><strong>Astuce :</strong></span> Ajoutez le paramètre &#8211;all (<strong>git fetch &#8211;all</strong> ou <strong>git fetch -a</strong> dans sa version raccourcie) pour mettre à jour son « catalogue » local de toutes les branches distantes disponibles.<br /><br /></li>
<li><strong>git branch &#8211;list</strong> : Cela va vous lister toutes les branches que vous avez en locale. Et c&rsquo;est aussi à ce moment-là que vous ferez un arrêt cardiaque en vous rendant compte du merdier que vous avez accumulé. C&rsquo;est là qu&rsquo;une voix dans votre tête ressemblant à celle de votre mère vous dira : « Mais tu vas la ranger ta chambre !!? C&rsquo;est le bordel ici !! ».<br />Ne vous inquiétez pas, j&rsquo;ai la solution : <strong>git branch -d feat/ma-branche</strong>. Et parfois, pour une raison que je n&rsquo;ai pas trouvé, vous ne pourrez pas supprimer une branche. Remplacer -d par -D qui est l&rsquo;équivalent d&rsquo;un <strong>-d &#8211;force</strong>.<br /><strong>Astuces :</strong> Vous pouvez très bien supprimer plusieurs branches d&rsquo;un coup : <strong>git branch -d feat/ma-branche fix/ma-branche2</strong>.</li>
</ul>
<p> </p>
<h2>Petit bonus :</h2>
<h3>Ecrire (selon moi bien entendu) un bon commit :</h3>
<p>Ce que je vais vous présenter ici est, selon moi, une bonne façon d&rsquo;écrire un commit. Attention cela dépendra aussi de votre entreprise et de ses besoins/méthodes de travail. Donc cela n&rsquo;engage que moi mais libre à vous de faire votre propre rédaction de commit. Le plus important est que cela soit lisible et que<span style="text-decoration: underline;"> tous vos commits soient homogènes</span> entre collègue.</p>
<p>Une fois le <strong>git commit</strong> fait, voici une structure propre pour vos commits :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; title: ; notranslate">
feat(header): champ recherche
Ajout d&#039;un champ de recherche dans mon header
</pre></div>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: powershell; title: ; notranslate">
fix(header): champ recherche
Correction de mon champ de recherche dans mon header
</pre></div>


<h4>Vocabulaire :</h4>
<ul>
<li>feat = feature = nouveauté</li>
<li>fix = correction</li>
</ul>
<p>Voilà vous avez une première base avec des commandes de bases pour faire du git pour vos projets. Je n&rsquo;ai pas tout aborder, comme le rebase mais vous pourrez trouver plus d&rsquo;information sur <a href="https://www.tefdesign.fr/2019/09/git-rebase-est-ton-ami/" target="_blank" rel="noopener">cet article que j&rsquo;avais écris ici</a> :)&nbsp;</p>
<p>Bon git !</p>
<p>Longue vie et prospérité !</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter size-medium" src="https://media.giphy.com/media/C5hL7OSWyACFW/giphy.gif" width="500" height="377"></p>
<p><map name='google_ad_map_1298_f5380a0c2c93d793'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1298?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1298_f5380a0c2c93d793' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1298&amp;url= https%3A%2F%2Fwww.tefdesign.fr%2F2022%2F10%2Fles-commandes-de-base-de-git%2F' /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.tefdesign.fr/2022/10/les-commandes-de-base-de-git/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1298</post-id>	<dc:creator>TefDesign</dc:creator></item>
		<item>
		<title>Faire un git add propre et efficace</title>
		<link>https://www.tefdesign.fr/2020/05/faire-un-git-add-propre-et-efficace/</link>
					<comments>https://www.tefdesign.fr/2020/05/faire-un-git-add-propre-et-efficace/#comments</comments>
		
		
		<pubDate>Sat, 23 May 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Tuto]]></category>
		<guid isPermaLink="false">https://www.tefdesign.fr/?p=1300</guid>

					<description><![CDATA[Tu veux faire des git add propre et efficace ? Pas de souci c'est par là que ça se passe :)]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image">
<figure class="aligncenter" style="text-align: center;"><img decoding="async" src="https://media.giphy.com/media/7ge427hSVer6/giphy.gif" alt=""></figure>
</div>



<p>Salut les amis !</p>
<p>Cela faisait un p&rsquo;tit moment que je n&rsquo;avais pas écrit d&rsquo;article, mais il faut dire que cette période a été un peu compliquée pour tout le monde :) Et j&rsquo;ai été pas mal occupé également.</p>
<p>Il y a quelques mois, je m&rsquo;étais forcé à utiliser <a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://git-scm.com/book/fr/v2" target="_blank" rel="noopener noreferrer">Git</a> dans le terminal et plus en mode « clic clic » dans mon éditeur de code sans comprendre ce que je fais réellement. Et que ce soit au taf ou pour moi perso. Et je dois dire qu&rsquo;aujourd&rsquo;hui c&rsquo;est devenu naturel. Au point que lorsque je clique sur un bouton pour faire une action Git, j&rsquo;ai honte et je regarde autour de moi si on m&rsquo;a vu.</p>
<p>Aujourd&rsquo;hui je voudrais mettre en lumière 2 façons d&rsquo;ajouter vos fichiers dans l&rsquo;index pour commit et vous pourrez ne plus utiliser le sempiternel <span style="background-color: #daebf2;"><strong>git add .</strong></span>. Que l&rsquo;on soit d&rsquo;accord : ce n&rsquo;est pas les meilleures façons d&rsquo;ajouter, mais bien les façons que moi je peux conseiller. Encore une fois, je ne suis pas un pro du git, et il est fort possible qu&rsquo;il existe une meilleure façon de faire. Donc, n&rsquo;hésitez pas à me le dire en commentaire :)</p>
<h2>Pourquoi je n&rsquo;aime pas git add . ?</h2>
<p>La réponse sera simple et courte : je ne trouve ça pas trop propre et vous ajoutez tous vos fichiers comme un bourrin dans l&rsquo;index de commit sans vous souciez de ce qui a été modifié. OK c&rsquo;est plus rapide, mais une erreur est vite arrivée et vous pouvez insérer des erreurs inutiles qui vous feront chier par la suite.</p>
<p>S&rsquo;il vous plait, plus de <span style="background-color: #daebf2;"><strong>git add .</strong></span> !</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter" src="https://media.giphy.com/media/3ARqfaxs6Km88/giphy.gif" width="549" height="388" /></p>
<p> </p>
<p>Comme pour mon article sur le <a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://www.tefdesign.fr/2019/09/git-rebase-est-ton-ami/" target="_blank" rel="noopener noreferrer">git rebase interactive</a>, je vais fonctionner avec des copies d&rsquo;écran pour que vous compreniez bien.</p>
<p>Faisons un <strong><span style="background-color: #daebf2;">git status</span></strong> :</p>
<p style="text-align: center;"><a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://www.tefdesign.fr/wp-content/uploads/2020/05/01.png"><img loading="lazy" decoding="async" class="size-full wp-image-1301 aligncenter" src="https://www.tefdesign.fr/wp-content/uploads/2020/05/01.png" alt="" width="843" height="276" srcset="https://www.tefdesign.fr/wp-content/uploads/2020/05/01.png 843w, https://www.tefdesign.fr/wp-content/uploads/2020/05/01-573x188.png 573w, https://www.tefdesign.fr/wp-content/uploads/2020/05/01-768x251.png 768w, https://www.tefdesign.fr/wp-content/uploads/2020/05/01-403x132.png 403w" sizes="auto, (max-width: 843px) 100vw, 843px" /></a></p>
<p>Nous pouvons voir un fichier modifié et un fichier non ajouté dans l&rsquo;index : on dit que le fichier est untracked.</p>
<h3>Un peu de vocabulaire</h3>
<p>Voyons cela rapidement :</p>
<ul>
<li>Untracked : votre fichier est nouveau et n&rsquo;est pas encore inscrit dans l&rsquo;index du commit En gros il est là, il attend qu&rsquo;on veuille bien de lui et n&rsquo;est existant qu&rsquo;en local sans interaction avec votre branche locale. Il apparaît en rouge dans le statut.</li>
<li>Changes not staged : votre fichier est inscrit dans l&rsquo;index mais a été modifié. Il apparaît en rouge dans le statut</li>
<li>Changes to be commit : votre fichier a été ajouté à l&rsquo;index du commit et est prêt à être commit. Il apparaît en vert dans le statut.</li>
</ul>
<p> </p>
<h2>1 : Git add -p</h2>
<p>La première façon est <span style="background-color: #daebf2;"><strong>git add -p</strong></span>. le -p veut dire patch. En gros vous allez parcourir chaque modification dans chaque fichier modifié, voir les modifications et dire si oui ou non vous voulez l&rsquo;ajouter. Essayons ! Allez hop :</p>
<p style="text-align: center;"><a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://www.tefdesign.fr/wp-content/uploads/2020/05/02.png"><img loading="lazy" decoding="async" class="size-full wp-image-1302 aligncenter" src="https://www.tefdesign.fr/wp-content/uploads/2020/05/02.png" alt="" width="867" height="347" srcset="https://www.tefdesign.fr/wp-content/uploads/2020/05/02.png 867w, https://www.tefdesign.fr/wp-content/uploads/2020/05/02-573x229.png 573w, https://www.tefdesign.fr/wp-content/uploads/2020/05/02-768x307.png 768w, https://www.tefdesign.fr/wp-content/uploads/2020/05/02-330x132.png 330w" sizes="auto, (max-width: 867px) 100vw, 867px" /></a></p>
<p>Bon OK la différence est subtile, c&rsquo;est l&rsquo;indentation. Mais c&rsquo;est pour les besoins de l&rsquo;article ! Ne me jugez pas, je suis pas là pour souffrir OK ??!</p>
<p>Là on a pas mal de choix possible ! <span style="background-color: #daebf2;"><strong>Stage de hunk</strong></span>, à traduire par <strong>ajouter ce bloc</strong> :</p>
<ul>
<li>y : cela va parcourir le fichier et afficher chaque différence. Et à chaque différence on vous demandera ce que vous voulez faire.</li>
<li>n : vous refusez d&rsquo;ajouter le fichier complet. Il passe au suivant</li>
<li>q : vous quittez le <strong><span style="background-color: #daebf2;">git add -p</span></strong> (c&rsquo;était trop dur :P)</li>
<li>a : vous allez accepter ce bloc et toutes les autres modifications <strong>seulement sur ce fichier</strong>. </li>
<li>d : vous refusez ce bloc de modification et toutes les prochaines modifications et vous passez au fichier suivant. La différence est subtile avec n mais ce dernier refuse le fichier au complet alors que d lui vous pouvez accepter par exemple les 2 premières modifications et refuser les suivantes.</li>
<li>g : vous pouvez choisir le bloc modifié sur lequel vous voulez aller. C&rsquo;est pas mal pour parcourir vos modifications.</li>
<li>/ : si vous êtes un fou du regex, cette option est faite pour vous :P</li>
<li>J : si vous êtes indécis sur ce que vous voulez faire de cette modification, cela permet de mettre ce bloc en undecided et de passer au bloc modifié suivant. </li>
<li>j : vous laissez ce bloc en undecided et vous passez au prochain bloc qui a le statut undecided</li>
<li>e : permet de modifier le bloc en live avec nano ou VI</li>
<li>? : affiche l&rsquo;aide que je viens de me faire chier à vous expliquer ! :P</li>
</ul>
<blockquote>
<p><span style="text-decoration: underline;"><strong>Point positif :</strong></span> <br />Cette solution est vraiment pas mal. Vous pouvez interagir avec vos fichiers modifiés inscrits dans l&rsquo;index pour chaque bloc.</p>
<p><span style="text-decoration: underline;"><strong>Point négatif :</strong></span><br />Je regrette juste que ce soit assez chiant quand on a beaucoup de modification et de fichiers modifiés. Et quid des fichiers en untracked ? On risque de les oublier et on est obligé de faire un <span style="background-color: #daebf2;"><strong>git add monfichier</strong></span> pour l&rsquo;inscrire dans l&rsquo;index de commit.</p>
</blockquote>
<p> </p>
<h2>2 : Git add -i</h2>
<p>La seconde méthode est ma préférée. C&rsquo;est la façon interactive. Je trouve cette méthode assez claire car elle regroupe plusieurs commandes, dont le patch que nous venons de voir. Allez c&rsquo;est partie, faisons un p&rsquo;tit <span style="background-color: #daebf2;"><strong>git add -i</strong></span> :</p>
<p style="text-align: center;"><a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://www.tefdesign.fr/wp-content/uploads/2020/05/03.png"><img loading="lazy" decoding="async" class="size-full wp-image-1303 aligncenter" src="https://www.tefdesign.fr/wp-content/uploads/2020/05/03.png" alt="" width="858" height="143" srcset="https://www.tefdesign.fr/wp-content/uploads/2020/05/03.png 858w, https://www.tefdesign.fr/wp-content/uploads/2020/05/03-573x96.png 573w, https://www.tefdesign.fr/wp-content/uploads/2020/05/03-768x128.png 768w, https://www.tefdesign.fr/wp-content/uploads/2020/05/03-792x132.png 792w" sizes="auto, (max-width: 858px) 100vw, 858px" /></a></p>
<p>Ce qui est intéressant avec cette méthode, c&rsquo;est qu&rsquo;en théorie vous ne pouvez pas louper un fichier untracked car il y a une option pour ça dans la version interactive.</p>
<p>Expliquons les options :</p>
<ul>
<li>1 (ou s) : affiche le statut des fichiers dans l&rsquo;index de commit. (Important : <strong>juste dans l&rsquo;index de commit</strong> !)</li>
<li>2 (ou u) : liste les fichiers que vous voulez ajouter dans l&rsquo;index de commit au cas par cas. Soit vous tapez le chiffre, soit la lettre qui est en gras et couleur pour sélectionner vos fichiers</li>
<li>3 (ou r) : liste les fichiers que vous avez ajoutés dans l&rsquo;index de commit pour faire un retour arrière. Vous sélectionnez le ou les fichiers voulus et cela les renverra à l&rsquo;état initial au tout début du git add -p (soit unchanged, soit untracked)</li>
<li>4 (ou a) : liste les fichiers non inscrit dans l&rsquo;index de commit pour les ajouter au cas par cas. A vous de sélectionner les fichiers voulus</li>
<li>5 (ou p) : liste les fichiers modifié et inscrit dans l&rsquo;index de commit pour passer en revu les modifications et voir quoi ajouter ou refuser. Vous vous retrouvez avec le patch vu juste ci-dessus grâce à la commande <span style="background-color: #daebf2;"><strong>git add -p</strong></span>.</li>
<li>6 (ou d) : liste les fichiers ajoutés dans l&rsquo;index de commit et vous montrent les différences entre vos modifications et le code original.</li>
<li>7 (ou q) : vous quittez le <span style="background-color: #daebf2;"><strong>git add -i</strong></span>. :)</li>
<li>8 (ou h) : affiche l&rsquo;aide !</li>
</ul>
<p>Voici un exemple si vous tapez a (add untracked), vous avez le listing des fichiers à ajouter dans l&rsquo;index de commit. Et même principe, le chiffre ou la lettre en gras pour l&rsquo;ajouter ! Et vous faites la touche Entrée sans rien saisir pour revenir au menu précédent :</p>
<p style="text-align: center;"><a class="md-opjjpmhoiojifppkkcdabiobhakljdgm_doc" href="https://www.tefdesign.fr/wp-content/uploads/2020/05/04.png"><img loading="lazy" decoding="async" class="size-full wp-image-1304 aligncenter" src="https://www.tefdesign.fr/wp-content/uploads/2020/05/04.png" alt="" width="560" height="238" srcset="https://www.tefdesign.fr/wp-content/uploads/2020/05/04.png 560w, https://www.tefdesign.fr/wp-content/uploads/2020/05/04-311x132.png 311w" sizes="auto, (max-width: 560px) 100vw, 560px" /></a></p>
<blockquote>
<p><span style="text-decoration: underline;"><strong>Point positif :</strong></span> <br />J&rsquo;aime cette solution. Elle permet de ne rien oublier, de tout contrôler. Bref vous l&rsquo;aurez compris c&rsquo;est ma méthode préférée.</p>
<p><span style="text-decoration: underline;"><strong>Point négatif :</strong></span><br />Très honnêtement je n&rsquo;en ai pas trouvé. :P</p>
</blockquote>
<p>Voilà ! Après tout ça, j&rsquo;espère vous avoir fait abandonner le <span style="background-color: #daebf2;"><strong>git add .</strong></span> bien bourrin et être plus consciencieux dans vos ajouts de fichiers sur vos branches :)</p>
<p>Longue vie et prospérité !</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter size-medium" src="https://media.giphy.com/media/C5hL7OSWyACFW/giphy.gif" width="500" height="377" /></p>
<p><map name='google_ad_map_1300_f5380a0c2c93d793'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1300?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1300_f5380a0c2c93d793' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1300&amp;url= https%3A%2F%2Fwww.tefdesign.fr%2F2020%2F05%2Ffaire-un-git-add-propre-et-efficace%2F' /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.tefdesign.fr/2020/05/faire-un-git-add-propre-et-efficace/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1300</post-id>	<dc:creator>TefDesign</dc:creator></item>
		<item>
		<title>Comment réussir son télétravail</title>
		<link>https://www.tefdesign.fr/2019/10/comment-reussir-son-teletravail/</link>
					<comments>https://www.tefdesign.fr/2019/10/comment-reussir-son-teletravail/#comments</comments>
		
		
		<pubDate>Mon, 14 Oct 2019 07:00:45 +0000</pubDate>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Tuto]]></category>
		<category><![CDATA[Veille]]></category>
		<guid isPermaLink="false">https://www.tefdesign.fr/?p=1263</guid>

					<description><![CDATA[Si tu veux faire du télétravail mais que tu ne sais pas si tu es fait pour ça et comment t'y prendre ? clique donc par là !]]></description>
										<content:encoded><![CDATA[


<div class="wp-block-image"><figure class="aligncenter" style="text-align:center;"><img decoding="async" src="http://giphygifs.s3.amazonaws.com/media/mCRJDo24UvJMA/giphy.gif" alt=""></figure></div>



<p>&nbsp;</p>
<p>J&rsquo;ai la chance, et je dis bien la chance, de pouvoir faire du télétravail. Certains diront que c&rsquo;est tout à fait normal dans notre métier. Mais la réalité est tout autre. En France, même si cela commence un peu à venir, pas mal de sociétés ont encore du mal à faire confiance à leurs employés. Pour beaucoup, le télétravail est synonyme de glande devant un bon film avec un p&rsquo;tit café et un donut pendant que les collègues bossent comme des oufs.</p>
<p>Mais nous allons essayer de décortiquer cela ensemble et voir si t&rsquo;es fait pour ça et comment bien y arriver.</p>
<p>Je te préviens tout de suite : je ne suis pas un expert du télétravail. Mais je vais te parler de mon expérience personnelle et comment moi, simple mortel, je vois les choses. Pour te donner un ordre d&rsquo;idée, dans mon ancienne boite, j&rsquo;ai bossé en télétravail presque 1 an et demi. Au début 1 jour comme ça, puis la société allait mal (rien à voir avec le télétravail hein) et je suis passé à 3 jours puis full télétravail. Maintenant dans l&rsquo;agence actuelle, je suis à 2 jours fixes par semaine. Et je crois bien que ça fait plus d&rsquo;un an et demi maintenant. Donc voilà je pense que je peux t&rsquo;en parler un peu !</p>
<p>&nbsp;</p>
<h2>Pourquoi faire du télétravail ?</h2>
<p>&nbsp;</p>
<p>La question parait toute conne, pourtant, il est important de se la poser. Faire du télétravail, juste pour dire qu&rsquo;on en fait ou pour être libre d&rsquo;aller acheter son pain au chocolat le matin n&rsquo;est pas la bonne solution. Tu dois te demander si vraiment cela est nécessaire pour toi. Prenons mon exemple. J&rsquo;ai 42 ans depuis hier (oui en théorie je vais poster cet article le lundi 14 octobre, contactez-moi en PV pour m&rsquo;envoyer des cadeaux ou de l&rsquo;argent ce sera avec plaisir :P). J&rsquo;ai pas mal bougé dans mon précédent métier, j&rsquo;étais toujours sur la route. Souvent levé à 5h du matin et rentré à 20h. Aujourd&rsquo;hui, j&rsquo;ai 2 enfants qui grandissent bien trop vite. Le matin entre le train et la voiture et le trajet à pied je mets 1h30 minimum. Et ça, c&rsquo;est juste le matin donc je fais la même chose le soir. Et souvent bien plus à cause de la circulation ou les trains en retard (merci la SNCF, big love for ever)</p>
<p>&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter" style="text-align: center;"><img decoding="async" src="https://media.giphy.com/media/2dQ3FMaMFccpi/giphy.gif" alt=""></figure></div>



<p> </p>
<p>Le télétravail est vraiment une qualité de vie non négligeable ( en plus de mon rendement, mais je parlerais de cela plus tard). Mais voilà l&rsquo;agence web dans laquelle je travaille me fait confiance et la confiance n&rsquo;est pas unilatérale. Et je peux t&rsquo;assurer que quelqu&rsquo;un qui triche, ça se voit très vite. Surtout dans les agences web où le travail est souvent en flux tendu. Et je suis très a cheval sur la confiance. Tricher ne t&rsquo;amènera que des problèmes dans ta vie pro (c&rsquo;est mon côté papa ça désolé).</p>
<p> </p>
<h2>Suis-je fait pour le télétravail ?</h2>
<p> </p>
<p>Là aussi la question est importante. Pose-toi la question de savoir si tu peux rester chez toi sans avoir envie de regarder les infos sur ton équipe de foot favorite toutes les 10 minutes. Je connais quelqu&rsquo;un qui bosse dans le web qui m&rsquo;a dit mot pour mot : « Franchement moi je ne pourrais pas faire du télétravail, j&rsquo;aurais toujours envie de regarder Netflix ». Je trouve ça honnête et clair. Il est important d&rsquo;être honnête avec soi même. Tu n&rsquo;y gagneras rien en faisant croire que tu vas y arriver, mais rien ne t&#8217;empêche d&rsquo;essayer (même si tu sais déjà que tu vas dégainer ton compte Netflix au bout d&rsquo;une heure). Et comme je te l&rsquo;ai dit plus haut, si tu triches, cela se verra. Et c&rsquo;est entre toi et ta conscience que ça se joue.</p>
<p>Demande-toi aussi si l&rsquo;interaction avec tes collègues est importante pour toi ou si tu préfères te couper une jambe plutôt que de parler à des gens. Entre nous l&rsquo;ami(e), si tu penses à la seconde option, va vite consulter quand même. Si si, vite vas-y, tu te rendras service. Dis toi que le télétravail peut être synonyme d&rsquo;isolement. Mais ça aussi, nous en parlerons plus tard. Mais pose-toi la question, c&rsquo;est important.</p>
<p> </p>
<h2>OK, mais comment y arriver ?</h2>
<p> </p>
<p>Tu as vu que le télétravail est bien pour toi et que tu penses pouvoir réussir. OK c&rsquo;est top. Après pour y arriver, moi je vais te donner ma façon de procéder. Ce ne sera peut-être pas la façon la plus optimale et possible même que cela ne soit pas bon pour toi. Mais comme je t&rsquo;ai dit plus haut, je vais te parler de ma façon de faire. N&rsquo;hésite pas à commenter, je suis preneur et intéressé, comment tu travailles chez toi si tu fais déjà du télétravail !</p>
<p>Déjà il faut définir ton environnement de travail. Ce que j&rsquo;avais fait au début, c&rsquo;était de voir où et comment j&rsquo;allais m&rsquo;y prendre. Depuis le début, je suis sur mon ordinateur perso fixe. La configuration de notre appartement est telle que le seul endroit que j&rsquo;ai pour travailler est le salon. Dans ce cas, le facteur le plus important est de placer tes jours de télétravail quand t&rsquo;es tranquille sans personne. Dans un peu plus d&rsquo;un an avec ma femme, on aura fini de faire construire notre maison et j&rsquo;ai prévu un bureau. D&rsquo;ici là j&rsquo;aurais aussi probablement un ordi portable du boulot. Tout sera plus simple. Ma femme pourra être là le jour de mon télétravail, je ne serais pas dérangé et toujours concentré.</p>
<p> </p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter size-full" src="http://giphygifs.s3.amazonaws.com/media/hIaC7H5bIFkVa/giphy.gif" width="442" height="185" /></p>
<p> </p>
<p>Une fois le lieu défini, parlons du matériel. Dans le web, le double écran c&rsquo;est quand même le tarif minimum. Ça reste mon avis, mais bon, des fois, je me dis qu&rsquo;un 3ème écran ne serait pas du luxe. Alors un seul écran, ça me ferait un peu chier quand même.</p>
<p>Si comme moi tu bosses sur ton ordinateur fixe perso, soit tu te fais une session personnelle, soit comme moi tu bosses sur un second bureau virtuel. Et si comme moi, tu bosses sur Windows (ne me jetez pas la pierre, si j&rsquo;étais seul j&rsquo;aurais remis ma Debian), mets dans Système / multitâche le select appelé « <strong>Dans la barre des tâches, afficher les fenêtres ouvertes sur</strong> » sur l&rsquo;option « <strong>Le bureau que j&rsquo;utilise uniquement</strong>« . C&rsquo;est tout bête, mais si tu ouvres une fenêtre sur ton bureau « perso » l&rsquo;icône n’apparaîtra pas dans la barre des tâches de ton bureau « pro ». Tu pourrais très bien caché ta barre de menu, mais par expérience, on est de grands enfants : Plus tu caches et interdits, plus tu vas être tenté de regarder et toucher !!</p>
<p>Dernière configuration que je te conseille sur ton Windows : clique droit sur ton icône de notifications tout en bas à droite et mets l&rsquo;assistance de concentration sur Priorité uniquement. Tu peux recevoir des mails, etc., tu n&rsquo;auras plus de notification. Personnellement, même au bureau j&rsquo;ai désactivé les notifications.</p>
<p>Voilà avec ça je pense que t&rsquo;es paré. Après il te reste plus qu&rsquo;à installer ton environnement. Je te conseille d&rsquo;être à l&rsquo;identique avec ton ordi du bureau, que ce soit en termes de logiciels ou d&rsquo;environnement serveur si tu utilises un serveur local.</p>
<p> </p>
<h2>Bienfaits et mise en garde</h2>
<p> </p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter size-full" src="https://media.giphy.com/media/ITnn2IenMv7SE/giphy.gif" width="480" height="258" /></p>
<p> </p>
<p>Alors on a parlé un peu des deux, mais il est important de développer tout ça. Les bienfaits ne sont plus à prouver. Tu te lèves plus tard, tu n&rsquo;as plus le souci et la fatigue du trajet. Tu n’es pas stressé sur le timing pour aller prendre ton train (s&rsquo;il est là&#8230;.. houuuu que je suis méchant&#8230;). Tu n&rsquo;es pas guindé dans un costume si tu as l&rsquo;habitude de t&rsquo;habiller en pingouin pour aller bosser (désolé pour toi si tu mets un costard pour aller faire bosser). Le midi tu manges dans ton environnement personnel et le soir tu fermes tout et tu peux retrouver ta famille 10 secondes plus tard. Et là franchement ça n&rsquo;a pas de prix.</p>
<p>Par exemple moi les vendredis je finis à 17h. Je fais mon télétravail et à 17h je coupe. Je suis déjà à la maison. 10 min plus tard, je peux filer avec ma famille faire les courses si besoin et ne pas rentrer trop tard. La semaine ? 18h je coupe et 5 min après je peux aller faire faire les devoirs à mes enfants et plus laisser ma femme seule devant tout ça ou faire la vaisselle ou /et le repas.</p>
<p>Autre bienfait, mais là c&rsquo;est personnel, je suis bien plus performant quand je suis en télétravail. Mon rendement est meilleur. Un problème de code ou je buterais au bureau, bizarrement je trouve plus vite chez moi. Au bureau, il faut se dire que le moindre mouvement autour de toi attire ton attention. Ce n’est rien comme ça, mais ça suffit pour te déconcentrer. Et plusieurs fois dans la journée ça peut être perturbant.</p>
<p>Il y a aussi ton DT qui tente de te percer le crane avec son Nerf à distance pendant que toi tu voudrais éclater les petites pattes arrières à ton maudit code qui ne veut pas marcher (si tu lis cet article cher DT, je suis un homme mort, je sais). Tu as aussi le/la collègue qui se lève et vient te voir pour te demander un truc. Le/la chef de projet qui a besoin de toi pour un chiffrage (chiffrage qui peut attendre probablement, mais toujours plus simple de t&rsquo;en parler de vive voix). Mais tu galères pour te remettre dans ton code ensuite.</p>
<p>Mais chez toi, on t&rsquo;envoie un mail tout simplement. Et toi tu t&rsquo;organises. Tu te dis que la première demi-heure tu traites tes mails, ensuite tu bosses sur tes projets et vers 11h30 tu regardes et traites de nouveau tes mails. Ou plusieurs fois dans la matinée c&rsquo;est toi qui vois suivant ta fonction dans la société et l&rsquo;exigence demandée. Mais je ne jette pas la pierre à ces personnes, car je suis sûr que je fais la même chose avec eux. C&rsquo;est humain, on a besoin d&rsquo;interactions avec son entourage pro.</p>
<p>Dernier bienfait : le télétravail c&rsquo;est quand même une sacrée économie !! Mon plein de voiture me tient presque le mois (je dis presque, faut pas abuser quand même). Et au-delà de l&rsquo;économie de carburant, tu abîmes moins ta voiture, etc. Bref on n’y pense pas à ça, mais c&rsquo;est important.</p>
<p> </p>
<p>Mais, il y a toujours un, mais, il y a aussi des inconvénients.</p>
<p> </p>



<div class="wp-block-image"><figure class="aligncenter" style="text-align: center;"><img decoding="async" src="https://media.giphy.com/media/l2JhtKtDWYNKdRpoA/giphy.gif" alt=""></figure></div>



<p>&nbsp;</p>
<p>Si tu n’as pas de bureau pour toi et que tes enfants et/ou ta femme ont du mal à comprendre que le télétravail c&rsquo;est comme si tu n’étais pas là, bosser va vite devenir un enfer pour toi. Moi je n&rsquo;ai pas ce problème, mais honnêtement, si c&rsquo;était le cas, j&rsquo;aurais tout de suite arrêté. C&rsquo;est un coup à ne pas tenir des objectifs et perdre la confiance de ton boss.</p>
<p>Autre souci, et pas des moindres, l&rsquo;isolement. Si tu es juste à 1 ou 2 jours de télétravail, c&rsquo;est largement jouable. Mais plus, cela peut vite devenir compliqué. Il y a quelque temps, pour des soucis de santé, la médecine du travail avait demandé que je passe à 3 jours de télétravail. Mais je me suis rendu compte que c&rsquo;était trop. Alors oui j&rsquo;ai déjà fait du full télétravail comme je l&rsquo;ai précisé plus haut. Mais la situation était différente. On était 3 employés, 3 en télétravail. La société allait malheureusement mal et il fallait qu&rsquo;on bosse de chez nous. Mais l&rsquo;agence web actuelle est pérenne. Tout le monde bosse bien, les boss s&rsquo;investissent vraiment, du coup il n&rsquo;y a pas lieu de faire plus de télétravail que ça pour moi. Et dès que j&rsquo;ai pu, je suis repassé à 2 jours comme convenu initialement. J&rsquo;ai vite senti la limite. Je commençais à me rendre compte que je loupais tout. Ça n&rsquo;a pas duré longtemps, mais j&rsquo;ai perdu quelques affinités avec quelques personnes. Ne néglige JAMAIS le côté humain. Ça fait cliché de dire ça, mais bosser dans une agence web, c&rsquo;est aussi une aventure humaine. Tu réussis, tu galères, mais tu le fais en équipe. Si tu t&rsquo;isoles trop, tu perds tout ça.</p>
<p>Un autre point : le télétravail ce n’est pas la fête à neuneu. T&rsquo;es peut-être chez toi, mais tu travailles. Donc il faut bien comprendre (et faire comprendre à ton/ta conjoint(e) si il/elle est présent(e)) que c&rsquo;est comme si tu n&rsquo;étais pas là. T&rsquo;es pas là pour faire une lessive, la vaisselle ou pour jouer à la XBox à la moindre pause. Non au bureau tu ne fais pas tout ça. Personnellement je me mets dans cette situation : jour de télétravail, à partir de 8h30 je me comporte comme au bureau jusqu&rsquo;à 18h. Avant ou après tu fais ce que tu veux. Le midi je mange et je fais ce que je fais au bureau en règle général.</p>
<p>Dernier point important, si t&rsquo;es assidue dans ton travail au point de faire du zèle, le risque que tu peux avoir c&rsquo;est d&rsquo;avoir la sensation de ne jamais t&rsquo;arrêter de bosser.Si tu fais du zèle au bureau, tu le fais dans un autre lieu que chez toi. Tu sors du bureau et tu as ta coupure. Mais chez toi, tu n&rsquo;as pas cette coupure. Et c&rsquo;est encore plus vrai si tu n&rsquo;as pas actuellement de pièce dédiée chez toi pour le télétravail. Le zèle c&rsquo;est bien, mais attention : ne va pas trop loin. Il ne faut pas qu&rsquo;être chez toi devienne une tannée.</p>
<p>&nbsp;</p>
<p>Voilà, je pense qu&rsquo;on a fait le tour. J&rsquo;ai probablement oublié certains aspects du télétravail. N&rsquo;hésites pas à me dire en commentaire, je te répondrais avec plaisir. En tout cas, j&rsquo;espère t&rsquo;avoir un peu éclairé sur le télétravail en te parlant de mon vécu. Et si tu ne sais pas quoi faire maintenant, je t&rsquo;invite à lire mon dernier article sur <a href="https://www.tefdesign.fr/2019/09/git-rebase-est-ton-ami/" target="_blank" rel="noopener noreferrer">Git rebase</a>, tu vas voir c&rsquo;est instructif et ça va changer ta vie :)</p>
<p>&nbsp;</p>
<p>Longue vie et prospérité</p>
<p>&nbsp;</p>



<div class="wp-block-image"><figure class="aligncenter" style="text-align=center;"><img decoding="async" src="https://media.giphy.com/media/C5hL7OSWyACFW/giphy.gif" alt=""></figure></div>


<p><map name='google_ad_map_1263_f5380a0c2c93d793'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/1263?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_1263_f5380a0c2c93d793' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=1263&amp;url= https%3A%2F%2Fwww.tefdesign.fr%2F2019%2F10%2Fcomment-reussir-son-teletravail%2F' /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.tefdesign.fr/2019/10/comment-reussir-son-teletravail/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1263</post-id>	<dc:creator>TefDesign</dc:creator></item>
	</channel>
</rss>