Article original : The Google Doc of Coding: Git & GitHub
Par Yung L. Leung
Introduction
Google Doc est un traitement de texte côté serveur (en ligne). Les fichiers d'un utilisateur sont créés via un navigateur web et stockés sur un serveur. Ce logiciel permet aux utilisateurs de partager des documents avec d'autres pour collaborer. Normalement, le flux de travail est le suivant :
- Créer un document et le remplir avec du contenu.
- Enregistrer le contenu et partager le fichier avec d'autres pour collaboration.
- Les membres contribuent sur le même document, en ligne.
Outre le partage de fichiers, une autre fonctionnalité importante est la possibilité d'annuler ou de refaire les modifications apportées au fichier 'master'. Les modifications apportées au document sont séquentielles et tout utilisateur peut annuler (ou refaire) ces modifications.
Mais cela peut rapidement devenir un grand désordre, surtout lorsque plusieurs utilisateurs ajoutent ou modifient simultanément du contenu. Qui a créé ou modifié quel contenu et pour quelle raison est inconnu.
Atom, Git & GitHub
En développement logiciel, les outils pour la programmation collaborative consistent en un éditeur de texte, un système de contrôle de version et un dépôt en ligne.
Atom (ou tout autre éditeur de texte) est comme votre traitement de texte côté client (bureau), sauf que le document est du code écrit dans un certain langage (par exemple : JavaScript).
Git est un outil pour enregistrer sélectivement l'historique des modifications enregistrées de votre projet. C'est un moyen de 'contrôler' toutes les différentes versions de votre projet de programmation.
GitHub est comme votre Google Docs, sauf que vous pouvez créer et enregistrer votre version du code hors ligne, avant de la 'pousser' pour qu'elle soit enregistrée en ligne.
Atom, Git & GitHub
Ainsi, vous avez votre éditeur de texte (Atom), votre système de contrôle de version (Git) et votre système de stockage de fichiers à distance (GitHub). Ce sont les éléments de base qui résolvent le problème de la collaboration, surtout pour les développeurs de logiciels. Le flux de travail est similaire à l'utilisation de Google Docs, avec quelques différences.
Flux de travail pour le développement collaboratif de logiciels
- Créer un dépôt GitHub en ligne (à distance) (https://github.com/new)
2. Créer un dépôt hors ligne (local). La commande terminal git init _nom_duprojet lance votre projet en créant un dossier pour stocker son contenu et des fichiers de contrôle de version pour stocker un historique de ses modifications.
- L'idée est d'avoir finalement une copie locale et à distance de votre projet.
3. Utiliser un éditeur de texte pour créer du contenu. C'est ici que vous commencez à écrire votre programme avec Atom et à créer vos fichiers JavaScript.
Codage avec un éditeur de texte Atom
4. Enregistrer le contenu et noter les progrès historiques significatifs dans votre projet. La commande terminal git add . ajoute tout le contenu du dossier, toutes les modifications, à être validées dans l'historique. La commande git commit -m 'message' valide les modifications dans l'historique, avec un message expliquant les modifications apportées. La commande git push pousse vos fichiers et données historiques vers votre dépôt à distance.
- Au fur et à mesure que vous faites des progrès continus dans votre projet, vous enregistrez la logique derrière chaque étape de développement (git add, git commit, git push).
Votre copie locale et à distance grandit à chaque push.
5. Partager le fichier avec d'autres pour collaboration. Une fois que votre dépôt à distance contient du contenu, vous pouvez partager votre projet avec des collaborateurs.
- Après que les membres ont accepté l'invitation, ils peuvent créer une branche à partir du dépôt à distance et cloner le projet localement (git clone **__).
Créateur avec deux collaborateurs construisant du contenu sur des clones du projet.
- Chaque collaborateur peut créer du contenu, enregistrer le contenu et le pousser vers leur branche à distance.
- Au fur et à mesure que les collaborateurs continuent à créer et à enregistrer leur contenu, ils finissent par créer des branches dans le 'ciel' GitHub (git add, git commit, git push).
Créateur et collaborateurs développant le projet et le poussant vers GitHub.
- Chaque branche est un collaborateur qui se détache du projet original afin que les membres puissent travailler en parallèle avec le créateur, sans perturber les progrès des uns et des autres. Chaque fois qu'un collaborateur effectue un git push, la branche s'allonge.
6. Fusionner les fichiers branchés. À la demande des collaborateurs, le créateur peut tirer leur branche pour la fusionner avec la branche principale.
Les collaborateurs poussent et soumettent des demandes de tirage. Le créateur tire les clones et fusionne les branches.
- Lorsqu'un collaborateur soumet une demande de tirage, le créateur peut effectuer un git pull pour fusionner les branches en une seule version mise à jour du projet. Cette nouvelle version peut ensuite être poussée dans le dépôt à distance pour que tout le monde puisse la voir et l'utiliser.
Contrôle de version et partage de fichiers
Dans le développement collaboratif de logiciels, des modifications sont apportées à plusieurs clones d'une copie principale, avant qu'elles ne soient fusionnées dans le fichier principal. Ainsi, les modifications apportées sont séquentielles, mais avec des chevauchements dans le temps.
Les collaborateurs créent des branches, poussent et fusionnent leurs branches avec le créateur, à différents moments.
Chaque nouveau morceau de contenu créé sur un clone est finalement poussé vers le dépôt principal d'un collaborateur. Chaque message de validation d'un collaborateur fournit des commentaires au créateur afin qu'il puisse apporter des modifications et des ajouts intelligibles au projet original.
Cela serait une tâche difficile sans le contrôle de version de Git et le partage de fichiers de GitHub. Une simple commande terminal (git branch ) peut prendre un clone sur une machine locale et créer une branche afin qu'une version différente du projet puisse être développée. Un utilisateur peut ensuite noter ses progrès (git add & git commit) à tout moment. S'il y avait des problèmes avec une version active, l'utilisateur peut simplement basculer vers une branche précédente (git checkout ) et continuer à partir de là.
C'est la signification du contrôle de version. À tout moment, un utilisateur peut basculer vers des versions alternatives d'un projet, tout en validant des notes intelligibles qui expliquent la progression de chaque version. L'utilisateur a un contrôle total sur les versions qui sont développées. Une simple poussée terminal vers les 'nuages' GitHub rend toute version disponible à leurs collaborateurs. C'est la puissance d'utiliser Git & GitHub dans le développement collaboratif de logiciels.
Références :
Git - Vidéos _Edit description_git-scm.comApprendre Git avec Bitbucket Cloud | Tutoriel Git Atlassian Apprendre Git avec Bitbucket Cloudwww.atlassian.comComment fonctionne Google Docs _Back End de Google Docs - Le back end de Google Docs repose sur du matériel et des logiciels simples et peu coûteux. En savoir plus..._computer.howstuffworks.comAtom (éditeur de texte) - Wikipédia _Atom est un éditeur de texte et de code source gratuit et open-source pour macOS, Linux et Microsoft Windows avec support pour..._en.wikipedia.orgGit - Wikipédia _Git () est un système de contrôle de version distribué pour suivre les modifications du code source pendant le développement logiciel. C'est..._en.wikipedia.orgGitHub - Wikipédia _GitHub propose des plans pour les comptes entreprise, équipe, pro et gratuits qui sont couramment utilisés pour héberger des logiciels open-source..._en.wikipedia.org