PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Carl Chenet : Courrier du hacker : vers le 100ème numéro

jeudi 6 juin 2019 à 12:00

Le numéro 90 du Courrier du hacker, la newsletter hebdomadaire résumant l’actualité francophone du Logiciel Libre et Open Source chaque semaine, a été publié vendredi dernier. Dernière ligne droite avant le 100ème numéro. Chemin parcouru.

Notre dernière article sur le Courrier du hacker concernait le 75ème numéro. Quel est aujourd’hui le statut du Courrier du hacker, après la publication du 90ème numéro ?

Les chiffres

Le Courrier du hacker a dépassé les 2000 abonnés. Plusieurs nettoyages successifs de la newsletter ont stabilisé le nombre d’abonnés.

La newsletter connaît un très bon taux d’ouverture, entre 50 et 55% en moyenne selon les numéros. Le taux réel est sûrement supérieur, une part importante du public utilisant des clients de courriels neutralisant la traçabilité de ce taux.

Le taux de clics varie entre 30 et 35% selon le numéro également.

Archives

Beaucoup de lecteurs lisent les différents numéros du Courrier du hacker directement depuis les archives du Courrier du hacker.

En effet le site web du Courrier du hacker propose un flux RSS qui relaie les nouveaux ajouts aux archives.

Réseaux sociaux du Courrier du hacker

Les réseaux sociaux représentent un important axe de développement pour le Courrier du hacker aujourd’hui.

Le compte Mastodon du Courrier du hacker a déjà dépassé les 200 abonnés. Il diffuse régulièrement les meilleurs articles, ceux qui ont rencontré le plus de succès.

Compte Mastodon du Courrier du hacker

Le compte Twitter du Courrier du hacker se développe également, pour toucher les très nombreux libristes sur ce réseau.

Le futur du Courrier du hacker

Le Courrier du hacker est en route vers le 100ème numéro. Nous avons encore quelques mois pour réfléchir aux prochaines grandes orientations de ce projet.

Nous avons jusqu’ici réussi à être assez régulier, avec seulement quelques retards, dont le plus grave était lié à notre prestataire d’e-mails.

Conserver cette régularité est notre première priorité, mais nous souhaitons annoncer du nouveau pour l’anniversaire du 100ème numéro.

Donc très bientôt du nouveau à venir pour le Courrier du hacker 😉

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

The post Courrier du hacker : vers le 100ème numéro appeared first on Carl Chenet's Blog.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Allumer et éteindre une LED avec la Raspberry Pi et Python.

mercredi 5 juin 2019 à 17:08
Contrôler une LED avec la Raspberry Pi

Ce tutoriel est le premier d’une série dédiée à l’utilisation des ports GPIO de la Raspberry Pi contrôler des composants électroniques.

Vous le savez sans doute, la Raspberry Pi possède des ports appelés GPIO (General Purpose Input Output) qui permettent de contrôler un certain nombre de composants électroniques.

Dans ce tutoriel, nous allons voir comment utiliser ces ports GPIO pour contrôler une LED avec la Raspberry Pi.

Le matériel nécessaire

Pour suivre ce tutoriel, vous aurez besoin du matériel suivant :

Ce tutoriel peut être suivi totalement sans avoir besoin de souder le moindre composant.

Par ailleurs, vous devrez avoir installé Raspbian sur votre carte SD, et avoir un moyen de contrôler votre Raspberry Pi, soit directement via clavier/souris/écran, soit via SSH.

Les notions de base autour des GPIO

Les ports GPIO sont des ports physiques se présentant généralement sous forme de picots métalliques carrés qui permettent de transmettre un signal électrique.

pins gpios
Connecteurs GPIO destinés à êtres soudés

Un port GPIO transmet un signal relativement binaire (pas de courant ou du courant). Dans le cas de la Raspberry Pi, les ports GPIO travaillent en 3.3 V et environ 20 mA.

Les ports GPIO sont donc un moyen simple de communiquer ou de contrôler des éléments physiques.

Les modèles les plus récents de la Raspberry Pi disposent de 40 connectiques GPIO, qui se divisent en différentes catégories avec des usages spécifiques.

Les ports GPIO sont numérotés de 1 à 40, en partant du haut à gauche quand vous tenez la Raspberry pi ports GPIO à droite. C’est le mode de numérotation dit « Board ». Un autre mode de numérotation existe, qui repose sur l’adressage processeur, appelé mode « BCM ».

Dans le cadre de ce tutoriel nous allons uniquement utiliser les ports de type GPIO et GND et la numérotation « Board ».

Brancher la LED à la Raspberry Pi

Pour réaliser notre branchement nous allons utiliser les composants suivants : une LED, une résistance, une bread-board et la raspberry.

La première étape de notre tutoriel va être de concevoir le circuit reliant la LED à la Raspberry Pi. Ne vous en faites pas, c’est très simple et nous n’allons pas avoir à faire des schémas compliqués !

Comment choisir la résistance ?

La première chose à savoir, c’est qu’une LED doit toujours utiliser une résistance. En effet, les LED ont ce que l’on appelle une « tension de seuil ». Pour faire simple, un peu trop de courant et la LED grille immédiatement, la résistance est donc une protection.

Nous allons donc devoir choisir quelle résistance utiliser. Pour cela, il existe une formule mathématique permettant de calculer la taille de la résistance à employer.

Rmin = (Ualim - Uled) / Imax

À moins que vous ayez de bons restes de vos cours de physique, je présume que ça ne vous avance pas tellement. Petite explication :

Nous l’avons dit, nos GPIO fournissent 3.3 V et 20 mA. La LED elle possède une intensité max de 20 mA (20 mA = 0.020 A) et une tension de seuil comprise en 1.5 et 1.9 V.

La formule est donc la suivante :

Rmin = (3.3 - 1.5) / 0.020

Nous obtenons donc une résistance minimum de 90 Ω, que nous allons arrondir à 100 Ω. Nous allons prendre de la marge en choisissant plutôt une résistance 270 Ω (ou bien 330 Ω, valeurs normalisées), nous protégeant ainsi d’un éventuel pic de courant sur le GPIO.

Pour trouver la valeur d’une résistance, deux possibilités :

Connecter la LED aux GPIO de la Raspberry Pi

Maintenant que nous savons quelle résistance utiliser, il ne nous reste plus qu’à relier le tout à la Raspberry Pi.

Pour cela, prenez deux câbles Dupont mâle/femelle, on choisira un câble rouge pour l’alimentation, et un câble noir pour le retour à la terre (c’est une convention).

Branchez le câble rouge au port GPIO 7, et le noir au GPIO 6.

Branchez les deux câbles à votre bread-board séparés de quelques rangées. Reliez le câble rouge à l’anode de votre LED (la patte allongée ou longue), une patte de la résistance à la cathode (l’autre patte de la LED, la patte courte donc), et l’autre patte de la résistance au câble noir.

Astuce : Vous avez du mal à retenir quelle patte est l’anode et laquelle est la cathode ? Moyen mnémotechnique simple, l’Anode Allongée Alimente !

C’est pas très clair ? Pas de panique, « un petit dessin vaut mieux qu’un long discours ! »

Le rouge à l’anode, la cathode à la résistance, la résistance au noir !

Si vous voulez être certain que tout fonctionne bien, un petit test simple est possible. Débranchez le câble rouge du GPIO n° 7 et branchez le au n° 1. Celui-ci fournis 3.3 V en permanence, si votre câblage est bon, la LED sera donc allumée 🙂 !

Écrire le programme pour contrôler la LED avec la Raspberry

Maintenant que notre circuit est prêt, il ne nous reste plus qu’à écrire le programme permettant de contrôler les ports GPIO pour allumer et éteindre la LED.

Pour cela, nous allons utiliser le langage de programmation Python. Dans ce tutoriel nous resterons très basique, et nous contenterons de donner un exemple de programme en expliquant comment l’utiliser et comment il fonctionne.

Il ne s’agit donc pas d’un cours de Python. Cependant, si vous souhaitez nous avons récemment publié un cours d’introduction à Python qui vous permettra d’apprendre à utiliser Python afin d’écrire vos propres programmes pour vos projets !

Créez donc un dossier /home/pi/electronic et un fichier led.py dans ce dossier, et écrivez-y le code suivant :

Notez que les textes derrière des # sont des commentaires servant à expliquer ce que fait le code, mais n’ayant aucune influence sur le programme. Vous n’êtes pas obligés de le recopier.

#!/usr/bin/env python3.5
#-- coding: utf-8 --

import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs

GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte

LED = 7 #Définit le numéro du port GPIO qui alimente la led

GPIO.setup(LED, GPIO.OUT) #Active le contrôle du GPIO

state = GPIO.input(LED) #Lit l'état actuel du GPIO, vrai si allumé, faux si éteint

if state : #Si GPIO allumé
    GPIO.output(LED, GPIO.LOW) #On l’éteint
else : #Sinon
    GPIO.output(LED, GPIO.HIGH) #On l'allume

Ceci fait, nous allons rendre le programme exécutable. Pour cela, il vous suffit de lancer la commande suivante :

chmod +x /home/pi/electronic/led.py

Il ne vous reste plus qu’à lancer le script en l’appelant comme ceci :

/home/pi/electronic/led.py

À chaque fois que vous exécuterez le script, la LED s’allumera si elle est éteinte, et s’éteindra si elle est allumée.

Et voilà, vous savez désormais les bases pour allumer et éteindre une LED avec la Raspberry Pi. Il ne vous reste plus qu’à adapter le code selon vos besoins. Pour cela, n’hésitez pas à consulter notre cours sur Python !

Dans le prochain article de cette série nous verrons comment lire des badges RFID !

Lire l'article complet : Allumer et éteindre une LED avec la Raspberry Pi et Python.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Gregory Colpart : Mini-DebConf Marseille 2019 (fr)

mercredi 5 juin 2019 à 15:57

L’idée d’organiser une mini-DebConf à Marseille est née à Toulouse en 2017 : après avoir participé avec plaisir à plusieurs (mini)DebConfs, se lancer dans l’organisation d’un tel évènement est une manière de rendre la pareille et de contribuer à Debian !

Fin 2018, après avoir réuni les personnes motivées, nous avons choisi la date du 25/26 mai 2019 et dimensionner l’évènement pour 50 à 70 personnes en sélectionnant un lieu approprié au centre-ville de Marseille. Je ne vais pas m’attarder ici sur détails de l’organisation (appel à conférences, enregistrement des participants, composition du programme etc.), car nous allons publier bientôt un « Howto Organizing a mini-DebConf » pour partager notre expérience.

Tout a commencé dès le mercredi 22 mai, où la formidable équipe vidéo DebConf s’est réunie pour un sprint de 3 jours pour préparer la couverture de l’événement avec le matériel déjà arrivé et former les membres qui gèreront le matériel pour la mini-DebConf Hambourg.

Vendredi 24 mai, l’équipe de traduction francophone de Debian est arrivée pour un sprint d’une journée. La plupart d’entre eux ne s’était jamais rencontré physiquement !

Une majeure partie des participants sont arrivés dans l’après-midi du vendredi 24 mai. Le bureau d’accueil (Front-Desk) était déjà prêt, et les arrivants ont pu récupérer leur badge et un T-shirt de l’événement. Pour des raisons écologiques, nous avions décidé de minimiser les goodies offerts au participants donc pas de sacs ou papiers superflus, mais un booklet distribué en amont. Si besoin, des goodies Debian (stickers, casquettes, polos, etc.) étaient aussi en vente au Front-Desk.

La soirée de vendredi a débuté avec un mini-CheeseWineBOF avec des denrées locales (fromages, vins, pastis, olives, fruits et légumes) et apportées par des participant(e)s : merci à Valhalla pour fromage italien, ainsi qu’à Urbec et Tzafrir !

La soirée de vendredi s’est poursuivie : pendant que l’équipe vidéo finalisait son installation dans la salle de conférence, les participants ont été invités à une réunion du Linux Users Group de Marseille : une présentation de Florence Devouard, pionnière de Wikipédia, qui est revenue l’historique de Wikipédia/Wikimédia avec de nombreuses anecdotes. La soirée s’est achevée avec une tradition locale : la dégustation de pizzas marseillaises. Le week-end n’est pas encore commencé, et déjà de bons moments sont partagés entre les participants !

Samedi matin, c’était le coup d’envoi officiel de la mini-DebConf ! Ouverture des portes à 8h30 pour le petit déjeuner : cookies fait-maison, café en grains, nous avons proposé durant tout le week-end de la cuisine locale, fait-main et végétarienne. Autre objectif : minimiser les déchets, et dans cette optique nous avons réfléchi à différents dispositifs : couverts en dur, tasses à étiqueter, Ecocups, etc.

75 participants s’étaient inscrits, ce qui correspondait au maximum de la capacité du lieu. Et 73 sont effectivement venus, ce qui est un bel exploit, notamment pour une conférence totalement gratuite. Si l’on compte quelques participants non-inscrits, nous avons été au total plus de 75 participants, soit au-delà de nos espérances !

À 9h45, c’est la conférence d’ouverture ! Jérémy déroule le programme du week-end, remercie les sponsors et rappelle le Code of Conduct, le système d’autorisations pour les photos, etc.

À 10h, c’est parti pour la première conférence ! Les choses sérieuses débutent : Cyril Brulebois – release manager du Debian Installer – détaille le fonctionnement de la migration d’un package vers Testing, et propose une solution pour visualiser les dépendances entre les packages et comprendre ainsi pourquoi un package peut être bloqué.

On enchaîne ensuite avec Peter Green – co-fondateur du projet Raspbian – qui présente l’outil autoforwardportergit qu’il utilise pour automatiser la création de packages Debian modifiés pour Raspbian.

Après une pause-café, c’est Raphaël Hertzog qui revient sur 5 ans du projet Debian LTS (Long Term Support). Il explique l’historique ainsi que le fonctionnement : la gestion des sponsors, le travail réparti entre plusieurs développeurs, l’offre extended LTS, l’infrastructure. Le sujet du financement des contributeurs provoquera plusieurs questions et suscitera un Lightning Talk sur le sujet dimanche matin.

Durant le midi, pendant que l’infatiguable équipe vidéo forme des débutants à ses outils, un déjeuner est servi sous forme de buffet végétalien ou végétarien. Nous sommes fiers d’avoir réussi à offrir une cuisine fait-maison avec des produits frais et locaux, et sans gâchis grâce à une bonne gestion des quantités.

Après le déjeuner, c’est l’heure de la KSP (Key Signing Party) organisée par Benoît. L’occasion pour chacun d’échanger des signatures de clés GPG et de renforcer le réseau de confiance.

Et l’on repart pour un cycle de conférences, avec Elena “of Valhalla” Grandi qui présente le protocole ActivityPub pour des réseaux sociaux fédérés comme Mastodon, Pixelfed, etc.

C’est au tour de Laura Arjona Reina venue de Madrid pour présenter la Welcome Team au sein de Debian qui œuvre pour accueillir les nouveaux arrivants.

Ensuite, Denis Briand – fraîchement élu président de Debian France – nous parle de l’association Debian France, de son but, de ses actions et de ses projets.

C’est au tour de Frédéric Lenquette d’aborder le sujet « Hardening and Secure Debian Buster » en explorant toutes les possibilités de sécurisation d’une Debian 10.

Enfin, dernière conférence de la journée de samedi : une partie de l’équipe de traduction francophone (Thomas Vincent, Jean-Philippe Mengual and Alban Vidal) présente son travail : comment fonctionne le travail en équipe, quelles tâches peuvent être faites par des débutants, etc.

Samedi soir, fin de la première journée : tous les participants sont invités à prolonger les échanges à la Cane Bière, un bar proche de la mini-DebConf.

Dimanche matin, on repart avec une présentation de l’équipe vidéo (représentée par Nicolas Dandrimont et Louis-Philippe Véronneau) qui révèle ses secrets pour assurer la couverture vidéo des (mini)DebConfs !

Puis on enchaîne avec une session de 6 Lightning Talks animés par Eda : « kt-update » (Jean-François Brucker), « the Debian Constitution » (Judit Foglszinger), « Elections, Democracy, European Union » (Thomas Koch), les méthodes de vote de Condorcet et du Jugement Majoritaire (Raphaël Hertzog), « encrypt the whole disk with LUKS2 » (Cyril Brulebois), « OMEMO – the big fish in the Debian bowl » (Martin) et « Paye ton Logiciel Libre » (Victor).

Après quelques mots pour clôturer les conférences, c’est déjà l’heure du rangement pour certains, tandis que d’autres en profitent pour faire un mini-DayTrip : descendre la Canebière à pied et embarquer au Vieux Port pour l’archipel du Frioul pour marcher et nager !

Nous remercions les 75 participant(e)s venus du monde entier (Canada, USA, Israël, Angleterre, Allemagne, Espagne, Suisse, Australie, Belgique etc.) ! Nous remercions également la fantastique équipe vidéo qui réalise un travail remarquable et impressionnant de qualité. Nous remercions Debian France qui a organisé l’événement, et les sponsors : Bearstech, Logilab et Evolix. Nous remercions la Maison du Chant de nous avoir mis à disposition les locaux. Nous remercions Valentine et Célia qui ont assuré tous les repas, il y a eu de nombreux compliments. Nous remercions Florence Devouard d’avoir assuré une belle présentation vendredi soir, ainsi que tous les orateurs(ices) de la mini-DebConf. Et je tiens à remercier tous les bénévoles qui ont assuré la préparation et le bon déroulement de l’événement : Tristan, Anaïs, Benoît, Juliette, Ludovic, Jessica, Éric, Quentin F. et Jérémy D. Mention spéciale à Eda, Moussa, Alban et Quentin L. pour leur implication et leur motivation, et à Sab et Jérémy qui se sont plongés avec moi dans cette folle aventure depuis plusieurs mois : you rock guys !

Twitter : https://twitter.com/MiniDebConf_MRS
Mastodon : https://mamot.fr/@minidebconf_mrs
Photos : https://minidebcloud.labs.evolix.org/apps/gallery/s/keMJaK5o3D384RA
Vidéos : https://ftp.acc.umu.se/pub/debian-meetings/2019/miniconf-marseille

Gravatar de Gregory Colpart
Original post of Gregory Colpart.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #22

lundi 3 juin 2019 à 00:01

Pour la 22ème semaine de l'année 2019, voici 12 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Carl Chenet : Débuter avec Git partie 4 : les commits et les branches

lundi 3 juin 2019 à 00:00

Dans cette série consacrée à l’apprentissage pratique de Git à travers des exemples, après avoir vu ce qu’est un commit, nous étudierons comment s’organisent les commits et comment passer de l’un à l’autre.

Objectif

Comme nous l’avons vu à la partie 2 et à la partie 3, Git enregistre les modifications qui surviennent au code dans le dépôt sous forme de commits.

Au fil des commits, nous construisons donc un historique des nos modifications. Git nous permet de naviguer entre ces modifications et donc de retrouver les états antérieurs des sources dans notre dépôt. Nous allons aujourd’hui détailler les possibilités offertes par cette organisation des commits.

État initial du dépôt

Nous nous positionnons dans un dépôt Git contenant actuellement deux fichiers.

$ cd historique-commit
$ ls
file1 file2

Le dépôt Git a connu 4 commits, comme nous l’indique la commande git log.

$ git log
commit ab63aad1cfa5dd4f33eae1b9f6baf472ec19f2ee (HEAD -> master)
Author: Carl Chenet 
Date: Tue May 28 20:46:53 2019 +0200

adding a line into file 2

commit 7b6882a5148bb6a2cd240dac4d339f45c1c51738
Author: Carl Chenet 
Date: Tue May 28 20:46:14 2019 +0200

add a second file

commit ce9804dee8a2eac55490f3aee189a3c67865481c
Author: Carl Chenet 
Date: Tue May 28 20:45:21 2019 +0200

adding a line in file 1

commit 667b2590fedd4673cfa4e219823c51768eeaf47b
Author: Carl Chenet 
Date: Tue May 28 20:44:30 2019 +0200

first commit

La commande git status nous précise quant à elle qu’aucun travail n’est en cours.

$ git status
On branch master
nothing to commit, working tree clean

Affichons le dernier fichier modifié pour la suite de l’article.

$ cat file2
this is the number 2 file

adding a line into file 2

Retrouver un état antérieur

Nous allons maintenant tenter de retrouver un état antérieur de notre dépôt, à savoir l’état de notre dépôt au précédent commit.

La commande git checkout va nous permettre de revenir à l’état de notre dépôt à un certain commit. Nous pouvons utiliser pour ça un nombre de commits antérieurs, par exemple juste 1 commit avant :

$ git checkout HEAD~1

Nous pouvons également utiliser l’identifiant du commit.

$ git checkout 7b6882a5148bb6a2cd240dac4d339f45c1c51738
Note: checking out '7b6882a5148bb6a2cd240dac4d339f45c1c51738'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

git checkout -b 

HEAD is now at 7b6882a add a second file

La sortie de Git est un peu difficile à comprendre tout de suite, mais le fait est que nous sommes revenus à l’état du dépôt à l’avant-dernier commit.

Affichons le dernier fichier que nous avons modifié.

$ cat file2
this is the number 2 file

Son contenu a bien changé, nous sommes donc bien revenus en arrière dans l’histoire des modifications de notre dépôt.

Le pointeur HEAD

Un composant important de la commande git précédente reste assez obscure : que signifie HEAD ? Et pourquoi ~1 ?

Il s’agit tout simplement d’un pointeur de position parmi les commits de notre dépôt. Un pointeur est ici un repère logique, un petit drapeau au sein de Git, qui indique un commit et que l’on peut déplacer pour indiquer un autre commit.

Un schéma va nous aider à comprendre. Nous identifions les commits par les 4 derniers caractères de leurs identifiants.

Avant notre checkout, HEAD pointait sur le dernier commit réalisé. Après le git checkout HEAD~1, nous avons positionné HEAD sur l’avant-dernier commit.

Nous entrons dans un mode spécial de Git (detached head ou tête détachée), qui nous permet de retrouver les données du dépôt telles qu’elles étaient au moment de ce commit. À partir de cet état du dépôt, nous pourrons évoluer vers un autre état sans modifier les commits déjà existants.

Différences entre deux commits

Nous allons maintenant observer les différences entre le commit sur lequel nous sommes positionnés et le commit le plus avancé que nous avons écrit, à l’aide de la commande git diff.

$ git diff HEAD master
diff --git a/file2 b/file2
index a21d8c9..040c455 100644
--- a/file2
+++ b/file2
@@ -1 +1,3 @@
this is the number 2 file
+
+adding a line into file 2

Nous voyons bien la ligne ajoutée au fichier file2 lors du dernier commit.

Remarquons que nous avons utilisé dans notre commande master, avec HEAD. Ici HEAD point sur l’avant-dernier commit de notre liste. Nous voyons les différences entre l’avant-dernier et le dernier commit. Or le dernier argument de notre ligne de commande était master. Il s’agit donc aussi, comme HEAD, d’un pointeur, mais sur le dernier commit réalisé. Nous y reviendrons.

Cette commande git diff marche bien sûr avec n’importe quel identifiant de commit, par exemple voici la différence entre le premier et le second commit, en utilisant ici leur identifiant unique.

$ git diff 667b2590fedd4673cfa4e219823c51768eeaf47b ce9804dee8a2eac55490f3aee189a3c67865481c
diff --git a/file1 b/file1
index 9dd524a..2788b18 100644
--- a/file1
+++ b/file1
@@ -1 +1,3 @@
this is the number 1 file
+
+adding a line in file 1

Les différences entre le premier et le second commit apparaissent bien.

Écrire une suite différente : une nouvelle branche

Nous sommes donc positionnés sur l’avant-dernier commit. Nous nous apercevons que nous aimerions continuer avec un contenu différent que celui enregistré dans le dernier commit, sans toutefois effacer ce dernier commit. Pour résumer nous voulons créer un embranchement dans l’histoire de nos commits pour créer une suite différente. Nous allons donc créer notre première branche.

Pour cela il suffit de relire le dernier message affichée lors de notre commande git checkout HEAD~1

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b 

Nous allons donc passer la commande suivante afin de créer une nouvelle branche dans laquelle nous écrirons la nouvelle suite des modifications que nous souhaitons.

$ git checkout -b new-file$ git status
On branch new-file
nothing to commit, working tree clean

Remarquons la première ligne On branch new-file alors que jusqu’ici nous avions On branch master. Nous avons donc bien créé une nouvelle branche nommé new-file.

Nous créons maintenant un nouveau commit contenant un nouveau fichier et l’ajoutons au dépôt.

$ echo "An unexpected new file" > file3
$ git add file3
$ git commit file3 -m "create an unexpected file"
[new-file a2e05c3] create an unexpected file
1 file changed, 1 insertion(+)
create mode 100644 file3

Où en sommes-nous ? Un schéma vaut mieux qu’un long discours.

Ce schéma nous apprend beaucoup de choses :

Une branche est donc définie par une série de commits et un pointeur du nom de cette branche sur le dernier commit de cette branche.

Conclusion

Arrêtons-nous là pour aujourd’hui. Nous avons vu une notion fondamentale, à savoir ce qu’est rééllement une branche Git et les principes sous-jacents à une branche, le lien entre les commits et les pointeurs. Il était malheureusement difficile de parler des branches précisément (ce que nous avions fait dans notre première article) sans toutes ces notions.

Dans un dépôt Git, l’unité est le commit, qui est un ensemble de modifications survenus sur le code dans ce dépôt. Un commit et ses prédecesseurs représentent une branche. On positionne sur certains commits des pointeurs, ayant chacun un rôle distinct :

Nous verrons dans un prochain article comment les branches interagissent entre elles et comment les utiliser pour multiplier les différentes versions d’un travail en cours.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Suivre l’actualité du Logiciel Libre et Open Source francophone

Abonnez-vous au Courrier du hacker, une newsletter hebdomadaire résumant le meilleur de l’actualité francophone du Logiciel Libre et Open Source. Déjà plus de 80 numéros et 2000 abonnés.

 

The post Débuter avec Git partie 4 : les commits et les branches appeared first on Carl Chenet's Blog.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.