GIT et Github

Le fameux content manager créé par Linus Thorvald himself et qui domine le monde.

Git

Beaucoup trop de gens et parmis eux des professionnels aguerris, définissent Git comme étant un logiciel de versionning, en bon franglais. C'est un racourcit aussi court que simpliste.
Dans le monde du développement logiciel, que ce soit des applications natives, des exécutables de bureau ou des applications web, il n’est pas rare de ne pas trop savoir où l’on va. L’idée de base est très souvent sommaire et évolue en fonction de tout un tas de chose : la compréhension des désidératas du client, la finalité commerciale du produit, mais aussi et surtout, en fonction des dead lines.

Quand il faut 6 mois pour développer un truc, et qu’on se rend compte qu’au 4e on n’en a pas fait la moitié… Les objectifs sont revus. On va abandonner telle fonctionnalité, on va simplifier telle interface, etc...
Pour faire tous ces ajustements sans devoir tout recommencer à chaque fois, tout en permettant à toutes les équipes de disposer de la base de code qui lui incombe et de faire son travail sans gêner celui des autres. Pour tout cela on an besoin d’un SCM, un Source Code Manager.

GIT est un des principaux SCM disponible. Par abus de langage on qualifie souvent GIT de logiciel de versionnage ou de gestion de version. En vérité la gestion des versions du logiciel par GIT n’est qu'une conséquence de son utilisation et qu’une infime partie seulement de toutes ses possibilités.
Git permet d’annuler des modifications même après sauvegarde du fichier (checkout).
Car Git sert à travailler sur son code avec la possibilité de le « sécuriser » à chaque fois que l’on fait une avancée intéressante (commit).
Un syteme de log permet de revenir en arrière même apres avoir commité.
Avec Git on peut travailler sur les améliorations du projet sans altérer le code source (branch).
Ce même système de branche permet à chaque membre d’une équipe de faire leur «fonctionnalité» de leur côté sans corrompre la base de code.
Évidemment ce système de branche possède une fonctionnalité qui permet de fusionner les changements viables au code source de base (merge). Et c'est par le jeu de ce système que sont gérés les versions. Ce n'est pas git qui va decider de passer de la version 2 à la version 3 par exemple.
Ce sont là les commandes élémentaires de git. Il y en a plusieurs autres qu’on utilisera en temps voulu.

Github

Tu l'auras compris tout seul, github est la version en ligne de Git, ce qui permet de conserver sur un serveur distant tout ton travail et ainsi disposer d'une copie de secours, mais pas que!
Oui car ce n'est rare d'avoir des problèmes avec son ordi: crash, vol, oupss la bouteille de lait... Ou tout simplement, tu en changes. Et bien souvent, dans ces moments là, tu es pris de court. L'utilité d'avoir une copie distante que tu peux télécharger sur n'importe quel ordinateur prend alors tout son sens.
Mais pas que, github permet aussi de partager ton code avec d'autres développeurs dans le cadre d'une collaboration ou juste pour avoir un avis, demander de l'aide ou présenter ton travail à un employeur.

Bref , comme la quasi totalité des developpeurs logiciel, quand tu auras testé Git et github, la vie deviendra tout simplement impossible sans. Et ça c'est en utilisation basique, car il existe aussi Git Flow, mais c'est un autre sujet qui sera traité ailleurs.

En attendant, tu peux commencer à apprendre Git via mes vidéos sur le sujet et aussi regarder la conférence faite par Linus Thorvald himself dans les locaux de Google en 2007 pour présenter git (en anglais).
Je te dis merci, ciao et à la semaine prochaine!

Play liste Git et Github:

Tech Talk de Linus Thoravld (créateur de git et de Linux) chez google en 2007:


Views: