• Home
  • About
    • My blog photo

      My blog

      Blop...

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

C'est quoi Git ?

03 Sep 2023

Reading time ~5 minutes

Sommaire

  • Qu’est ce que Git ?

  • Utilisation et initilisation du repo

  • Ressources utiles

  • Les commits

  • Sauvegarder en ligne

  • Branches et forks

  • Commandes à retenir

Qu’est ce que Git ?

Git est un logiciel de gestion de version créé par Linus Torvalds, le même homme qui a grandement contribué à créer le noyau Linux.

Git est une sorte d’insulte en anglais et Torvalds dit avoir nommé Linux en référence à lui même, et de même pour Git : “I’m an egotistical b*stard, and I name all my projects after myself,”. On en pensera ce qu’on voudra.

Git fonctionne sous plus ou moins tous les systèmes d’exploitation connus : windows, max, linux, androïd (dérivé de linux), etc…

Sa caractéristique primaire selon moi étant qu’il est portable, comme vu ci-dessus mais aussi open source. Avec Linux il fait partie des briques les plus importantes du monde informatique actuel. Git a été concu pour les besoin du projet Linux, ce qui en fait un héritier direct de la volonté d’ouverture et d’échange qui a su émerger autour de ce noyau.

Mais à quoi ca sert ? Eh bien git est le fondement d’à peu près toute la création de programmes informatiques actuels. Git est un gestionnaire de version et sert à archiver chacune modification faite à un projet, sa date et son auteur. Que ce soit la suppression, l’ajout et la modification d’un document, tout est archivé afin de permettre un total controle du projet en court. Mais bien entendu, ce n’est ici que la surface de son utilisation.

Utilisation et initilisation du repo

Git est un programme qui utilise une interface en ligne de commandes. C’est à dire que vous pouvez, si vous le souhaitez, et j’insiste sur ce fait, tout faire à partir d’un console en noir et blanc avec des mots tapés au clavier et sans autocomplétion. Ca permet de faire en sorte que git soit utilisable dans à peu près toute les configuration imaginable et ca le rend extremement pratique. Néanmoins, des interfaces graphiques existes ! Tels que github desktop ou gitkraken.

Git enregistre toutes les modifications apportées à un dossier spéficique. On appelle un tel dossier un repository (couremment appelé repo). Pour commencer, il nous faut donc créer un repo dont toutes les modifications seront ensuite enregistrées par git. Je ne détaillerai pas ici les différentes commandes à effectuer, je vous conseille de vous référer aux ressources situées à la fin de ce document si vous souhaitez en apprendre d’avantage.

Les commits

Tout ce qui suit n’a été créé que pour rendre l’ensemble des modifications apportées à un projet plus compréhensibles et utilisables par les différents acteurs du projet. C’est l’un des buts primaire de git e fin de compte.

Un commit est un sac contenant un ensemble de modifications apportées au repo. Ce sac à un identifiant (ex: 786384), un titre, un auteur, une date et souvent une description.

On met en général dans un même commit un ensemble de modifications ayant un même lien entre elle, ils sont à la base du maintient de la cohérence de l’historique dans un projet.

Avec git vanilla (en ligne de commande), il faut imaginer le repo comme un bac contenant les fichiers et leurs nouvelles modifications. A coté de ce celui-ci, il y a un autre bac dans lequel on ajoute les modifications que l’on souhaite grouper dans un même commit. Et enfin, il y’a un hangar rempli d’étagères contenant des commits empilés les uns sur les autres.

D’ailleurs, petit tips, si vous vous demandez ou sont stockés toutes ces données, elles sont en fait à la racine de votre repo, dans un dossier caché nommé .git. Sur windows, vous pouvez presser crtl + h pour afficher les dossiers cachés.

Sauvegarder en ligne

Afin de ne pas perdre ses anciens projets (même les moins importants) lorsque l’on change de pc ou autre, il est important de sauvegarder ses projets en ligne. Et au delà de ca, on ne travaille souvent pas seul en informatique, c’est pourquoi s’échanger les commits fait par l’un ou l’autre devient vite vital dans un projet. Github et Gitlab sont deux solutions connues pour sauvegarder vos repo en ligne et ce gratuitement.

Bien entendu sauvegarder tout en ligne apporte deux trois notions supplémentaires. Pour sauvegarder les modifications faites en local sur le repo en ligne (appelé remote), on fait ce qu’on appelle un push. Et inversement, pour synchroniser le repo local avec le remote, on fait un pull. Alt text

Branches et Forks

On appelle fork d’un repo une version alternative de celui-ci. On croise énormément ce terme dans le domaine de l’open source étant donné que si vous souhaitez améliorer un programme vous pouvez créer un fork de celui-ci, qui est en fait une simple copie du projet original au début.Ensuite vous changerez puis soumettrez les modifications à celui en charge du projet.

Alt text

Seulement, les forks ne sont en fait que le dérivé d’un autre notion encore plus utile, les branches. En fait, afin de pouvoir bosser conjointement sur un meme projet à deux ou même à deux-cent, chaque fonctionnalité possède une branche attitrée. La branche master est la branche officielle, celle contenant toutes les fonctionnalités stables et approuvées.

Alt text

Sur ce schéma, chaque noeud est un commit (un paquet de modifications comme nous la’vons vu plus haut), et chaque branche est une idée sur laquelle on travaille actuellement. Si jamais on n’avait pas ces branches, chaque idée en court de développement vienrait à se mélanger avec les autres ce qui abboutirait à des bugs et à un bazard monstre.

Un fork est un idée, l’une des dents de la fouchette parallèle à bien d’autres.

Conclusion

Comme vous avez pu le constater git a beau etre un outil relativement simple en théorie ses ramifications sont nombreuses. Il est à mon sens le logiciel le plus important jaais créé à ce jour et ca aura été un plaisir pour moi d’écrire et étayer mes connaissances sur le sujet. Il vous reste beaucoup à apprendre alors ne vous arretez pas en si bon chemin, personnellement je continue ! ;)

Commandes à retenir

  • cd [path, “..” for upper folder]
  • add [file-name]
  • commit -m [name]
  • push [remote] [branch]
  • pull [branch]
  • clone [url]
  • remote add [name] [url]
  • remote set-url [name] [url]
  • branch [name] (ET PAS branch add !!!)
  • checkout
  • branch -m [name]
  • git fetch –dry-run
  • git branch -d [name]

Ressources utiles

  • Apprendre git avec une application intuitive et qui vous corrige (https://github.com/jlord/git-it-electron )

  • Apprendre git avec un site web intuitif mais sans la correction apportée par l’app (http://jlord.us/git-it/)



devdef Share Tweet +1