Préambule : Cet article est la traduction français de « Building software together with Git« , écrit en anglais par le développeur Agate BERRIOT (qui développe notamment Funkwhale, un serveur de musique moderne auto-hébergé et open-source -licence AGPLv3-, inspiré par Grooveshark. Une version démo est disponible ici).
La traduction française et relecture Ă Ă©tĂ© rĂ©alisĂ©e par @Alice, @Elanndelh, @Lapineige et @Gordon. Le texte est mis Ă disposition sous licence Creative Commons CC-0. Vous ĂȘtes encouragé·es Ă la partager, la traduire, et la rĂ©utiliser. Si la lecture de cet article vous a intĂ©ressĂ©, abonnez-vous au blog de l’auteur via son flux RSS, oui suivez-le sur Mastodon (:
En tant que dĂ©veloppeuses ou dĂ©veloppeurs, nous avons tendance Ă oublier que nous utilisons un jargon obscur qui nous fait ressembler Ă dâoccultes sorciĂšres ou sorciers. Il peut y avoir une forme dâĂ©litisme derriĂšre cela, bien sĂ»r, mais je pense que cela arrive aussi parce que le dĂ©veloppement logiciel est vraiment un domaine bizarre, avec ses propres problĂ©matiques et solutions. De plus la terminologie obscure dĂ©crit souvent un concept vraiment spĂ©cifique et complexe quâil serait difficile de dĂ©crire autrement.
Il nây a pas beaucoup de ressources disponibles en ligne qui introduisent Git, GitHub, le concept de commits, branches, gestion de version, forks, pull requests et autres termes liĂ©s au dĂ©veloppement, qui apparaissent comme du jargon auprĂšs dâune audience non-technique.
Ce texte est une tentative dâamĂ©liorer la situation. Je tiens Ă remercier vivement @Ginny pour lâidĂ©e originale, @Hush pour la relecture et les corrections, et toutes les personnes qui ont aidĂ© Ă la rĂ©daction en partageant leurs retours.
đ€ Comment collaborons-nous sur du logiciel ?
Comme pour tout projet, un projet de dĂ©veloppement logiciel rencontre plus de succĂšs lorsque de multiples personnes travaillent sur plusieurs tĂąches en parallĂšle. Dans une organisation typique, on sâattend Ă trouver comptables, gestionnaires, secrĂ©taires, commerciales et commerciaux, et finalement, tout le monde travaille sur ses propres tĂąches en mĂȘme temps, sans problĂšmes. On veut Ă©viter le plus possible les situations oĂč quelquâun a besoin dâattendre une autre personne pour pouvoir avancer. On appelle ces situations des goulots dâĂ©tranglement. Un exemple de tel goulot serait dâavoir un seul tĂ©lĂ©phone dans une entreprise de 100 personnes : tout le monde devrait attendre son tour pour pouvoir passer un appel, ce qui serait une perte de temps.
Le dĂ©veloppement logiciel fonctionne de maniĂšre semblable : des dĂ©veloppeur·ses, graphistes, traducteur·ices â quasiment tout le monde â souhaitent travailler sans avoir Ă se prĂ©occuper du travail des autres, en particulier lorsque le projet grossit et attire des dizaines, voire des centaines, de contributeur·ices. Pour gĂ©rer cela, les personnes impliquĂ©es dans le dĂ©veloppement logiciel se reposent habituellement sur quelques outils et procĂ©dĂ©s que je vais dĂ©crire ci-dessous.
đ€ Quâest-ce quâun logiciel ?
Ce quâon appelle logiciel, dans sa forme la plus courante, nâest rien dâautre quâun ensemble de fichiers texte, Ă©galement appelĂ©e une base de code (ou codebase, en anglais). Ces fichiers texte contiennent des instructions pouvant ĂȘtre exĂ©cutĂ©es par un ordinateur. Oui, le travail de dĂ©veloppement consiste seulement Ă Ă©crire des choses.
Bien sĂ»r, en tant que dĂ©veloppeuse ou dĂ©veloppeur, vous devez penser Ă ce que vous Ă©crivez. Comme un·e Ă©crivain·e đ . Si vous avez dĂ©jĂ travaillĂ© sur une thĂšse, ou sur toute forme de rĂ©daction longue, vous avez rencontrĂ© de nombreux problĂšmes rencontrĂ©s lorsque des dĂ©veloppeur·euses cherchent Ă travailler sur le mĂȘme logiciel.
Lorsque vous ĂȘtes en pleine rĂ©daction, vous aurez besoin assez souvent de :
- Relecture (Reviewing en anglais) : vous voulez que quelquâun dâautre lise votre travail, et Ă©ventuellement puisse y faire des corrections ou modifications
- Collaboration : vous voulez que quelquâun puisse travailler sur une partie de la documentation, pendant que vous travaillez sur une autre
- Gestion de versions (Versioning en anglais) : la possibilitĂ© dâaccĂ©der Ă une prĂ©cĂ©dente version du document (par exemple parce que vous avez supprimĂ© quelque chose par accident)
Vous pouvez mettre en place de la relecture et de la collaboration en envoyant par e-mail des copies de votre travail Ă dâautres personnes, puis en intĂ©grant leurs retours dans votre propre copie, par de simples opĂ©rations de copier-coller. Pour la gestion de versions, les fonctionnalitĂ©s « annuler/refaire » de votre Ă©diteur de texte peuvent aider, de mĂȘme que sauvegarder des copies entiĂšres de votre document sur un autre support de temps Ă autre.
Cependant, si vous avez dĂ©jĂ travaillĂ© Ă plus dâune ou deux personnes sur le mĂȘme document, vous savez que câest particuliĂšrement pĂ©nible Ă gĂ©rer, et est source de nombreuses erreurs. Avez-vous vraiment envoyĂ© la derniĂšre version Ă vos ami·es ? Avez-vous bien intĂ©grĂ© tous leurs retours ? Comment faire pour revenir Ă la version dâhier de votre travail, alors que la derniĂšre sauvegarde complĂšte date de la semaine derniĂšre ?
Le dĂ©veloppement logiciel rencontre exactement les mĂȘmes problĂšmes. Mais en gĂ©nĂ©ral, il y a encore plus de personnes impliquĂ©es.
Et un jour, linus torvalds crĂ©a git đ
Git, et les plateformes associĂ©es, telles que GitHub, sont une tentative pour rĂ©soudre les problĂšmes mentionnĂ©s dans la section prĂ©cĂ©dente. Git permet Ă des personnes de contribuer Ă une mĂȘme base de code dâune façon saine et efficace. NĂ©anmoins, pour pouvoir le faire, il est nĂ©cessaire de repenser la façon dont on devrait collaborer, et introduire de nouveaux concepts. Tout cela reprĂ©sente du jargon pour toute nouvelle personne, et câest particuliĂšrement difficile Ă assimiler, câest pourquoi je vais tenter de dĂ©mystifier tout ça.
Commits et gestion de version
Au cĆur de Git se trouve un mĂ©canisme permettant de gĂ©rer les versions dâune base de code. (le versioning en anglais)
Chaque version de la base de code est, pour faire simple, un instantanĂ© de la base de code, associĂ© Ă sa date de crĂ©ation. Câest ce qui donne une gestion de version, parce quâil est possible de remonter dans le temps, pour retrouver nâimporte quel instantanĂ©.
Ces instantanĂ©s sont appelĂ©s commits. Cependant, faire une copie intĂ©grale du projet pour chaque commit nĂ©cessiterait un espace disque phĂ©nomĂ©nal. Git est plus malin que ça đ, et il fait en sorte de ne stocker que les diffĂ©rences (appelĂ©es diffs) entre chaque commit
đĄ Prenons un exemple simple :
- Alice débute son projet logiciel, crée un fichier texte contenant 10 lignes, puis crée le premier commit.
- 3 jours plus tard, elle modifie la ligne 7, et crée un second commit. Ce dernier contiendra le fait que la ligne 7 a été modifiée.
- 5 jours plus tard, elle supprime la ligne 3, et crĂ©e un nouveau commit. Ce commit contiendra le fait quâune ligne a Ă©tĂ© supprimĂ©e.nenenene
Tous ces commits crĂ©ent un historique de tout ce qui sâest passĂ© sur le projet (on parle de logs) :
- Jour 1 : Alice a ajouté 10 lignes
- Jour 4 : Alice a modifié la ligne 7
- Jour 9 : Alice a supprimé la ligne 3
Et si nous voulons revenir au jour 1, il est possible de demander Ă Git de dĂ©faire les changements du jour 9, puis du jour 4, dans cet ordre, ce qui nous ramĂšnera la base de code telle quâelle Ă©tait au jour 1. Puis nous pouvons rejouer le commit suivant, celui du jour 4, pour atteindre la version suivante du projet, et enfin rejouer le commit du jour 9 pour obtenir notre derniĂšre version.
Vous vous rappelez sans doute que jâai mentionnĂ© trois fonctionnalitĂ©s souhaitĂ©es : gestion de version, collaboration et relecture. Les commits nous apportent la gestion de version, mais Ă©galement la possibilitĂ© dâauditer : qui a fait quoi, et quand. Ăa apporte un bonus apprĂ©ciable.
Branches et parallélisation
Le dixiĂšme jour, Alice dĂ©cide de tenter une expĂ©rience avec quelque chose de nouveau đ, mais elle nâest pas certaine que ça fonctionne. Pour commencer Ă bidouiller son idĂ©e, elle crĂ©e ce que git appelle une branche. Vous pouvez vous reprĂ©senter les branches comme des routes, se sĂ©parant parfois en deux. Au bout du compte, deux routes peuvent se rejoindre, mais ce nâest pas obligatoire.
Dans git, tous les commits se déroulent sur une branche, par défaut sur celle nommée master
. Donc, si on se reprĂ©sente lâĂ©tat actuel du projet avec ça en tĂȘte, voici Ă quoi ça pourrait ressembler :
| branche master
|
* Commit du jour 1 : Alice a ajouté 10 lignes
|
* Commit du jour 4 : Alice a modifié la ligne 7
|
* Commit du jour 9 : Alice a supprimé la ligne 3
Donc, si Alice crée sa nouvelle branche, nommée expérimentation
, Ă partir de la branche master
, cela donne quelque chose comme :
| branche master
|
* Commit du jour 1 : Alice a ajouté 10 lignes
|
* Commit du jour 4 : Alice a modifié la ligne 7
|
* Commit du jour 9 : Alice a supprimé la ligne 3
|
|\
| \
| | branche expérimentale
La branche master
existe toujours, sur la gauche, mais Alice est maintenant en train de travailler sur la branche expérimentale
, sur la droite.
Elle est trÚs productive, et crée quelques commits sur cette branche :
| branche master
|
* Commit du jour 1 : Alice a ajouté 10 lignes
|
* Commit du jour 4 : Alice a modifié la ligne 7
|
* Commit du jour 9 : Alice a supprimé la ligne 3
|
|\
| \
| | branche expérimentale
| |
| * Commit du jour 11 : Alice a ajouté 10 nouvelles lignes
| |
| * Commit du jour 13 : Alice a modifié les lignes 5 à 9
Puisquâelle est satisfaite par ses changements, elle dĂ©cide de fusionner (merge, en anglais) la branche expĂ©rimentale au sein de la branche master.
Câest la façon de git dâappliquer les changements dâune branche sur une autre. Vous vous rappelez de lâanalogie des routes que jâai faite ? Câest comme ça quâune fusion peut ĂȘtre reprĂ©sentĂ©e :
| Route principale (branche master)
|
|\ La route se sépare en deux
| \
| | Route secondaire (branche expérimentale)
| |
| |
| |
| |
| /
|/ Les deux routes se rejoignent
|
| La route principale continue son cours
Lorsque la fusion est faite, la branche expérimentale est supprimée, et ses commits sont maintenant présents sur la branche master :
| branche master
|
* Commit du jour 1 : Alice a ajouté 10 lignes
|
* Commit du jour 4 : Alice a modifié la ligne 7
|
* Commit du jour 9 : Alice a supprimé la line 3
|
* Commit du jour 11 : Alice a ajouté 10 nouvelles lignes (depuis la branche expérimentale)
|
* Commit du jour 13 : Alice a modifié les lignes 5 à 9 (depuis la branche expérimentale)
Si, pour une quelconque raison, Alice nâĂ©tait pas satisfaite par son expĂ©rience, elle aurait pu la supprimer sans la fusionner, et la branche master
nâaurait pas Ă©tĂ© affectĂ©e.Les branches sont un concept puissant, mais Ă©galement difficile Ă apprĂ©hender dans git.
Elles sont utiles pour expérimenter sans risques, mais permettent aussi la collaboration, ce que nous allons voir dans la section suivante.
DĂ©pĂŽts et collaboration
Dans le scĂ©nario prĂ©cĂ©dent, Alice Ă©tait seule. Mais au 14Ăšme jour, son ami Bob vient lâaider sur son nouveau projet đȘ. Comment cela fonctionne avec git ?
LorsquâAlice a commencĂ© Ă travailler sur le projet, elle utilisait sa propre copie locale, ce que nous appellerons un dĂ©pĂŽt (repository, en anglais). Vous pouvez penser Ă un dĂ©pĂŽt comme un espace de travail, appartenant Ă quelquâun (Alice, dans ce cas).
Vu que Bob veut pouvoir contribuer, il aura besoin de son propre dĂ©pĂŽt. Lâune des façons de faire ça est quâAlice pousse, ou publie (push, en anglais) son dĂ©pĂŽt sur une plateforme telle que GitHub ou GitLab, de demander ensuite Ă Bob de sây crĂ©er un compte et dâutiliser le bouton fork. Cette opĂ©ration (fourchage en français, mais on utilise gĂ©nĂ©ralement le terme anglais) consiste simplement Ă crĂ©er une copie du dĂ©pĂŽt de quelquâun dâautre.
Git et GitHub ont beau avoir des noms similaires, ce sont des choses trĂšs diffĂ©rentes, et leur diffĂ©rence devient visible dĂšs lors que lâon commence Ă parler de collaboration. Si je reviens Ă mon analogie du document texte, git est similaire Ă un Ă©diteur de texte, comme Microsoft Word ou LibreOffice. Câest un outil que vous installez sur votre ordinateur pour pouvoir travailler sur vos documents (hors-ligne). Dâun autre cĂŽtĂ©, GitHub et les plateformes similaires comme GitLab ou Bitbucket sont plus proches de Google Docs : ce sont des services web qui hĂ©bergent votre travail, et le rendent visible et modifiable par dâautres. (en ligne)
Vous nâavez pas besoin dâutiliser GitHub si vous utilisez git, mais les deux tendent Ă ĂȘtre utilisĂ©s ensemble car ils se complĂštent et ont des objectifs diffĂ©rents.
Lorsque Bob forke le dĂ©pĂŽt dâAlice, sur GitHub, il se retrouve avec une copie exacte de son dĂ©pĂŽt. Câest lâĂ©quivalent git dâ« envoyer votre thĂšse par e-mail Ă un·e ami·e ».
Donc, Bob dispose dâun dĂ©pĂŽt fonctionnel, et commence Ă ajouter ses propres commits sur la branche master
:
| Espace de travail de Bob / branche Master
|
| (les précédents commits ont été omis)
|
* Commit du jour 11 : Alice a ajouté 10 nouvelles lignes (depuis la branche expérimentale)
|
* Commit du jour 13 : Alice a modifié les lignes 5 à 9 (depuis la branche expérimentale)
|
* Commit du jour 14 : Bob a modifié la ligne 8
|
* Commit du jour 15 : Bob a supprimé la ligne 12
|
Bob a ajoutĂ© deux commits lors des jours 14 et 15. Il aimerait que cela soit intĂ©grĂ© dans le dĂ©pĂŽt dâAlice. Une façon dây arriver en utilisant une plateforme telle que GitHub ou GitLab est de crĂ©er une demande dâintĂ©gration (pull request, ou merge request en anglais selon la plateforme). Ces demandes de collaboration sont souvent abrĂ©viĂ©es PRs.
Est-ce que vous vous souvenez quand Alice a fusionné sa branche expérimentale
dans la branche master
dans la section prĂ©cĂ©dente ? Une demande dâintĂ©gration consiste simplement Ă demander Ă quelquâun de fusionner une branche provenant de notre dĂ©pĂŽt, au sein dâune branche sur son dĂ©pĂŽt.
Donc, Bob crĂ©e une demande dâintĂ©gration (Pull Request) :
Bonjour Alice !
Jâaimerais fusionner la branche
améliorations
de mon dépÎt au sein de la branchemaster
de ton dĂ©pĂŽt.Jâai crĂ©Ă© un commit qui corrige une faute de frappe, et un autre qui amĂ©liore les performances.
NâhĂ©site pas Ă me rĂ©pondre si tu as des questions.
Bob
LorsquâAlice reçoit cette Pull Request, elle peut relire les commits de Bob (les modifications, ajouts etc.), et dĂ©cider sâils lui conviennent ou pas. Câest ce que lâon appelle une relecture de code (code review en anglais). Lors de la relecture de code, Alice va lire les changements apportĂ©s par les commits de Bob, y suggĂ©rer des modifications, et lorsquâelle sera satisfaite du rĂ©sultera, acceptera la Pull Request.
Accepter cette demande fusionnera la branche améliorations
de Bob dans la branche master
du dĂ©pĂŽt dâAlice.
| Alice's workspace / master branch
|
| (previous commits ommited)
|
* Commit from day 11: Alice added 10 new lines (from experiment branch)
|
* Commit from day 13: Alice edited lines 5 to 9 (from experiment branch)
|
* Commit from day 14: Bob edited lines 8 (from bob/improvements branch)
|
* Commit from day 15: Bob deleted line 12 (from bob/improvements branch)
|
| Espace de travail dâAlice / branche Master
|
| (les précédents commits ont été omis)
|
* Commit du jour 11 : Alice a ajouté 10 nouvelles lignes (depuis la branche expérimentale)
|
* Commit du jour 13 : Alice a modifié les lignes 5 à 9 (depuis la branche expérimentale)
|
* Commit du jour 14 : Bob a modifié la ligne 8 (depuis la branche bob/améliorations)
|
* Commit du jour 15 : Bob a supprimé la ligne 12 (depuis la branche bob/améliorations)
|
Bien sûr, elle aurait également pu refuser la Pull Request, auquel cas sa branche master
nâaurait pas Ă©tĂ© modifiĂ©e. Par ailleurs, la branche de Bob et sa Pull Request nâempĂȘchent pas Alice de travailler sur ses propres branches pendant ce temps : elle peut continuer Ă ajouter des commits sur sa branche master
, et ils seraient préservés avec la fusion de la branche de Bob dans la sienne.
En utilisant les branches, dĂ©pĂŽts et Pull Requests, Alice et Bob ont rĂ©ussi Ă collaborer sur le mĂȘme logiciel. Câest gĂ©nial !
Bonus : Conflits, tickets, et versions
Si vous avez tout lu jusquâici, les choses devraient ĂȘtre un peu moins effrayantes pour vous. Cependant, il y a plusieurs autres choses Ă savoir au sujet du dĂ©veloppement logiciel, et sur la façon dont on collabore tout en travaillant sur le logiciel.
Conflits
Dans la terminologie de git, un conflit est une situation oĂč deux changements qui concernent les mĂȘmes lignes du mĂȘme fichier sont faits sur des branches diffĂ©rentes, et que vous essayez de fusionner ces branches.
Examinons une situation typique de conflit :
- Bob crĂ©e un dĂ©pĂŽt dĂ©rivĂ© de celui dâAlice, comme dĂ©crit dans la section prĂ©cĂ©dente sur le fourchage
- Bob remarque une coquille quelque part et ajoute un commit Ă la branche
master
de son dĂ©pĂŽt pour corriger la coquille. Il oublie dâouvrir une pull request immĂ©diatement. - En mĂȘme temps, Alice remarque la mĂȘme coquille et ajoute un commit Ă la branche
master
de son dĂ©pĂŽt pour corriger la coquille. - Quelques jours plus tard, Bob se souvient dâouvrir une pull request pour fusionner sa branche
master
dans celle dâAlice - Malheureusement, puisque la branche
master
dâAlice a un commit en lien avec la mĂȘme ligne, git ne peut pas faire la fusion automatiquement et se plaindra vertement: « Alice et toi avez Ă©ditĂ© cette ligne en mĂȘme temps, quel changement dois-je garder ? »
En rĂ©sumĂ©, comme dans la vraie vie, les conflits se produisent gĂ©nĂ©ralement quand des gens travaillent exactement sur la mĂȘme chose en mĂȘme temps. Deux personnes qui offrent le mĂȘme livre Ă une fĂȘte dâanniversaire sont lâĂ©quivalent, dans le monde physique, de ce que git appelle un conflit.
Quand ils se produisent, les conflits exigent une rĂ©solution humaine et manuelle. Quelquâun doit lire et comprendre les deux changements en conflit puis gĂ©nĂ©ralement choisir celui qui a le plus de sens.
Les moyens simples dâĂ©viter les conflits dans git comprennent :
- La fusion frĂ©quente de vos branches : Plus vous attendez, plus il y a de chance que quelquâun dâautre ait commitĂ© un changement qui pourrait interfĂ©rer avec votre propre travail
- La coordination avec les autres personnes qui contribuent : partagez le travail en petites tùches indépendantes, et attribuez ces tùches à des personnes précises. Les tickets, comme il est mis en évidence ci-dessous, peuvent aider !
Les conflits ne sont pas toujours un signe dâun manque de coordination, et ils se produiront vraisemblablement de temps Ă autres dans nâimporte quel projet. Cependant, minimiser les situations de conflits est nĂ©cessaire pour rĂ©ussir Ă parallĂ©liser efficacement votre travail.
Tickets (« issues »)
Les tickets sont une partie importante du dĂ©veloppement logiciel. Vous avez peut-ĂȘtre dĂ©jĂ entendu ces phrases: « Veuillez ouvrir un ticket » ou « Veuillez ouvrir un bug dans notre outil de suivi des tickets ». Mais quâest-ce quâun ticket ?
Les tickets, Ă©galement appelĂ©s « rapports de bugs » ou « demande dâajout de fonctionnalitĂ© » sont des messages postĂ©s sur lâoutil de suivi de tickets dâun projet. Les dĂ©veloppeur·ses, contributeur·ices et utilisateur·ices de logiciel ouvrent gĂ©nĂ©ralement des tickets pour :
- Garder une trace dâun nouveau bug dans le logiciel
- Suggérer une amélioration ou une nouvelle fonctionnalité
- Poser une question sur le comportement du logiciel
Les tickets sont extrĂȘmement utiles, parce quâils constituent la mĂ©moire dâun projet, et fournissent aussi un aperçu des dĂ©veloppements futurs, des demandes populaires et des problĂšmes habituels que rencontre une communautĂ©.
Les autres personnes peuvent généralement ajouter des commentaires sur les tickets, discuter des solutions possibles et des écueils à éviter, fournir des solutions de contournement, etc. Quand un développement est nécessaire pour résoudre un ticket ou ajouter une fonctionnalité, un·e développeur·se créera généralement une branche, travaillera sur une solution, puis soumettra une pull request avec les changements. Une fois cette pull request acceptée, le ticket en lien est généralement fermé.
En rĂ©sumĂ©, voici le cycle de vie typique dâun ticket:
- Bob rencontre un problĂšme dans le logiciel
- Bob ouvre un ticket qui décrit le bug
- Maria, qui rencontre le mĂȘme problĂšme, ajoute un commentaire sur le ticket et dĂ©crit une solution possible
- Alice décide de travailler sur le ticket
- Elle sâattribue la responsabilitĂ© du ticket, crĂ©e une branche, commite les changements qui rĂ©pondent au problĂšme soulevĂ© dans le ticket et ouvre une pull request avec cette branche
- La pull request est mergée dans la branche
master
- Le ticket de Bob est fermé
Au quotidien, les personnes qui contribuent Ă un projet ont tendance Ă rĂ©soudre des tickets distincts, pour sâassurer quâils ou elles travaillent sur des problĂšmes diffĂ©rents et rĂ©ussir Ă parallĂ©liser le travail sans conflits.
Vous souvenez-vous du conflit qui sâest produit quand Alice et Bob ont tous deux essayĂ© de corriger la mĂȘme coquille dans le code source ? Si Bob avait ouvert un ticket dĂšs quâil avait remarquĂ© la coquille, Alice lâaurait remarquĂ© et ils auraient pu dĂ©cider ensemble qui devrait proposer un correctif.
Version (« releases »)
Les versions, également appelées « tags », sont la derniÚre piÚce manquante du processus de développement type. La plupart des projets ont tendance à suivre des cycles similaires :
- Les mainteneur·ses du projet ou les communautés choisissent un ensemble de tickets jugés prioritaires
- Les contributeur·ices traitent ces tickets
- Une fois les tickets sélectionnés traités, une version est publiée
- Les utilisateur·ices mettent à jour vers la nouvelle version
- Retour Ă lâĂ©tape 1.
Une version est un Ă©tat dâun logiciel qui est distribuĂ© au grand-public et sensĂ© amĂ©liorer ou remplacer les versions prĂ©cĂ©dentes.
Généralement, les versions sont nommées en utilisant un motif précis, comme version 1.2.3
, version 1.2.4
et version 1.3
.
Conclusion
JâespĂšre que ce texte vous a plu et que les explications vous ont donnĂ© une vue plus claire de ce qui se passe en dĂ©veloppement logiciel.
Il faut quelques efforts pour tout dĂ©mĂȘler et montrer lâutilitĂ© de tout ceci dâune maniĂšre non-technique. Si vous pensez que jâai Ă©chouĂ© quelque part ou quâil manque quelque chose, nâhĂ©sitez pas Ă me le faire savoir !
Liens complémentaires :
- DĂ©couverte de Git (par Bitbucket)
- Le livre complet Pro Git book Ă©crit par Scott Chacon & Ben Straub est consultable gratuitement en ligne (disponible en 13 langues) :
English, бŃлгаŃŃĐșĐž ДзОĐș, Español, Français, ÎλληΜÎčÎșÎŹ, æ„æŹèȘ, íê”ìŽ, Nederlands, Đ ŃŃŃĐșĐžĐč, SlovenĆĄÄina, Tagalog, ĐŁĐșŃĐ°ŃĐœŃŃĐșĐ°, çźäœäžæ. Ou en tĂ©lĂ©chargement au format .pdf, .epub ou .mobi - DĂ©buter avec Git et Github par SĂ©bastien Saunier – Le Wagon (2014)
- Aide-mémoire GitHub Git : Mémo en français fourni par GitHub (disponible également en version PDF)
- Comment rédiger ses messages de commit
- Learn Git Branching, une application conçue pour aider les débutants à saisir les puissants concepts derriÚre les branches en travaillant avec git.
- Formation sur Git par Grafikart (3h30 de vidéos en français)
- Git Novice : un guide Ă©tape par Ă©tape expliquant aux novices comment utiliser git