Git

Git est le système qui enregistre chaque changement apporté à un logiciel, par qui et pourquoi, si bien que n'importe lequel peut être annulé.

Également appelé gestion de versions contrôle de source historique des commits

Définition

Git garde la trace de chaque changement apporté à un logiciel, avec le nom de la personne, la date et la raison donnée. Chaque changement enregistré s'appelle un commit, et comme rien n'est jeté, n'importe quel commit peut être annulé. C'est toute l'idée, et c'est aussi pour cela que plusieurs personnes travaillent sur un même produit en même temps sans effacer le travail des autres.

Comme cet historique existe, une mauvaise mise en ligne cesse d'être une catastrophe. Plutôt que de restaurer la sauvegarde d'hier et de perdre les commandes du jour, l'équipe ramène le code au dernier commit correct, souvent en moins d'une minute. GitHub et GitLab sont des sites bâtis sur Git, si bien qu'ils gardent la copie partagée et y ajoutent la discussion. Une personne propose un changement, et une autre le lit et le commente avant qu'il n'atteigne un client. Alors quand un client demande à Linkysoft qui a modifié une règle de prix et à quelle date, la réponse sort de cet historique et non de la mémoire de quelqu'un.

Ce qui surprend le plus, c'est que Git n'oublie pas vraiment. Si un mot de passe ou une clé de paiement est enregistré une seule fois dans l'historique, supprimer la ligne le lendemain ne l'efface pas. L'ancienne version reste dans la trace, où toute personne possédant une copie du projet peut encore la lire. Le seul vrai remède est donc de changer le mot de passe lui-même, puis de nettoyer l'historique. C'est l'une des premières choses que nous cherchons lors d'un audit de sécurité, et nous la trouvons plus souvent qu'on ne voudrait.

Deux autres points méritent d'être connus, et le premier est que Git n'est pas une sauvegarde. Il garde l'histoire du code, pas les commandes ni les fichiers de vos clients, qui ont donc besoin de leur propre copie ailleurs. Le second, c'est que la valeur de l'historique tient aux notes que les gens écrivent à côté de chaque changement. Six mois plus tard, une note qui dit « corrigé » n'apprend rien à personne, alors que « arrêt de l'arrondi vers le bas du total de facture sur les commandes en deux devises » fait gagner un après-midi.

Vient ensuite la question à poser tôt, pendant que tout le monde s'entend encore : à quel nom est le compte qui contient le code ? Les entreprises l'apprennent au pire moment, quand un développeur part et que l'historique part avec lui. C'est pourquoi chaque projet mené par Linkysoft vit dans Git dès le premier jour, dans un compte que le client possède, y compris les travaux repris à mi-chemin. C'est aussi ainsi qu'un seul historique couvre une application web et l'application mobile construite dans le même système. Un seul changement de règle de prix touche alors les deux, et nous pouvons montrer le jour exact.

Questions sur Git

Git et GitHub, est-ce la même chose ?
Non. Git est le système d'enregistrement qui tourne sur les ordinateurs où se fait le travail. GitHub est un site qui conserve une copie partagée de cet enregistrement et ajoute la relecture et la discussion. GitLab et Bitbucket font la même chose.
Git peut-il récupérer un fichier supprimé ?
Oui, à condition que le fichier ait été enregistré au moins une fois dans l'historique. Vous pouvez récupérer n'importe quelle version, voir qui l'a supprimé et lire la note laissée à ce moment-là.
Git est-il une sauvegarde de mon système ?
Non. Il garde l'histoire du code, pas vos données. Les commandes, les fichiers déposés et la base de données ont besoin de leur propre sauvegarde, à intervalles réguliers, rangée ailleurs. C'est un dispositif distinct, et il faut le vérifier.
Qu'arrive-t-il à notre code si le développeur part ?
Tout dépend du compte qui le détient. Posez la question maintenant, tant que la relation est bonne. Le compte doit appartenir à l'entreprise, et au moins une personne en interne doit y avoir un accès complet.
Quelqu'un a enregistré un mot de passe dans le code. Le supprimer suffit-il ?
Non. L'ancienne version reste dans l'historique et toute personne ayant une copie du projet peut encore la lire. Changez d'abord le mot de passe lui-même, puis nettoyez l'historique. Dans l'autre sens, la porte reste ouverte.

Vous ne voyez toujours pas comment cela s'applique à votre projet ?

Dites-nous ce que vous construisez et nous vous répondrons simplement.