Comment démarrer avec GitHub

Si vous souhaitez devenir développeur de logiciels professionnel, vous devrez vous familiariser avec GitHub. Que vous partagiez vos projets personnels, que vous travailliez sur le code d’entreprise ou que vous utilisiez ou contribuiez à un projet open source, il y a de fortes chances que vous utilisiez GitHub.

Dans cet article, nous examinerons ce qu’est GitHub, les problèmes qu’il est conçu pour résoudre, et nous examinerons les bases de la création, de la copie et de la contribution à des projets hébergés sur GitHub. Avant de commencer, assurez-vous que Git est configuré sur votre ordinateur !

A lire : Comment débuter en programmation informatique : 3 étapes

Qu’est-ce que GitHub?

Image pour publication

Pourquoi c’est important?

Donc, tout d’abord, vous avez besoin d’une adresse e-mail pour l’un des membres de l’équipe principale. Ensuite, ils ont dû regarder votre code et vous envoyer des commentaires par courrier électronique. Il peut y avoir des suggestions pour suivre leurs conventions de mise en page de code de manière plus cohérente ou pour ajouter autre chose à votre correctif. Vous feriez ces changements, les enregistrez et leur envoyez un fichier de correctif mis à jour. Ensuite, le validateur transmettrait probablement votre e-mail à quelques autres contributeurs de confiance, rassemblerait leurs commentaires, vous les enverrait, puis vous enverriez un fichier de correctif final avec les modifications approuvées pour qu’ils fusionnent.

C’est beaucoup de travail pour ce qui pourrait potentiellement être un petit changement!

Étant donné que de nombreux projets étaient gérés par des bénévoles, il ne valait généralement pas la peine d’examiner, de répondre et de fusionner bon nombre de ces contributions.

GitHub a transformé tout cela. Avec tout projet hébergé publiquement sur GitHub, tout ce que vous avez à faire est de visualiser le projet, de cliquer sur le bouton «fourche» pour obtenir votre propre copie du projet, d’apporter les modifications souhaitées, de les enregistrer, puis de cliquer sur un bouton pour soumettre un «Pull Request» (PR) pour demander à l’un des propriétaires du projet de «tirer» votre travail dans son code. La création d’une Pull Request crée également une page Web sur laquelle toute personne intéressée par le projet peut consulter votre code et fournir des commentaires.

Il est même possible que des «robots» participent à l’action comme le PR ci-dessous. Le projet JavaScript open source React a un « sizebot » qui confirme que les modifications proposées ne rendent pas la taille globale du projet déraisonnablement grande. Voici l’URL si vous souhaitez consulter vous-même le PR https://github.com/facebook/react/pull/16825 .

Image pour publication github

Pour vous donner une idée de l’ampleur de l’impact que GitHub avait sur les projets open source, il y a dix ans, même les projets les plus populaires n’avaient que 20 à 50 committers. Aujourd’hui, React en a 1337 et Rails 3876!

Image pour publication

Au-delà de l’open source

Il s’avère que, en plus d’être un bon moyen pour les projets open source de solliciter des contributions, les PR sont également un moyen assez solide pour une équipe de développement à plein temps de collaborer sur une base de code. Chaque développeur (ou développeurs) crée une nouvelle branche dans le référentiel (un nouveau flux de travail au sein du projet). Ensuite, ils créent un PR où l’équipe peut examiner l’état d’avancement du code et peut attacher des artefacts tels que des maquettes et des données de test de performance afin que tout ce que vous devez savoir sur la nouvelle fonctionnalité se trouve sur la page PR.

Enfin, lorsque la fonctionnalité est terminée, revue et réussie tous les tests automatisés, tout membre de l’équipe disposant des autorisations suffisantes peut simplement «fusionner» le travail dans la branche «principale» (principale) et fermer le PR. L’équipe passe ensuite à la fonctionnalité / branche / PR suivante.

Pour cette raison, la plupart des entreprises utilisent maintenant GitHub ou un outil similaire (Atlassian Bitbucket ou Gitlab sont des alternatives courantes) pour stocker et collaborer sur leur code. Si vous travaillez en tant que développeur de logiciels professionnel, il est très probable que vous collaboriez avec votre équipe en utilisant GitHub ou un site similaire.

Que pouvez-vous en faire?

  • Projets personnels – Avez-vous déjà eu envie d’écrire un script pour automatiser un ensemble de tâches ennuyeuses ou pour créer une application Web ou mobile – ou même quelque chose de cool pour un Arduino? GitHub est un endroit idéal pour stocker votre code. Vous pouvez le télécharger pour ne jamais le perdre lorsque votre ordinateur portable meurt, et si jamais vous souhaitez partager votre code publiquement, ou avec des collaborateurs sélectionnés, il est facile de le rendre public ou d’autoriser des utilisateurs spécifiques à accéder à votre référentiel.
  • Projets de travail – Votre entreprise décidera de l’infrastructure que vous utilisez pour collaborer sur le code, mais il y a de fortes chances que ce soit GitHub ou un autre service offrant des fonctionnalités très similaires. Être familier avec la collaboration à l’aide de succursales et de PR vous facilitera grandement l’accès à un emploi de développeur de logiciels.
  • Projets open source – Même si vous souhaitez simplement utiliser un projet open source, vous pouvez très bien vous rendre dans le dépôt sur GitHub pour en savoir plus sur la façon de l’utiliser ou pour voir si l’erreur que vous rencontrez est une  » problème connu ». Et si jamais vous souhaitez commencer à contribuer à un projet (indice – la documentation et les tests sont assez faciles à créer et sont presque toujours appréciés – en particulier pour les petits projets), c’est là que vous irez pour bifurquer le projet et soumettre votre PR.

Comment commencez-vous?

Créer un projet

Tout d’abord, ouvrez une fenêtre de terminal (sous Linux ou Mac, n’importe quel shell fera l’affaire – sous Windows, vous voudrez utiliser Git Bash – pas Powershell).

Assurons-nous que nous ne sommes pas déjà dans un dépôt Git (ce qui confondrait Git et nous!)

> git status 
fatal: pas un référentiel git (ni aucun des répertoires parents): .git

Parfait – nous ne sommes pas dans un repo Git. Ensuite, créons-en un:

> git init my-cool-website 
Référentiel Git vide initialisé dans /Users/peterbell/Dropbox/code/my-cool-website/.git/

Parfait. Vous pouvez voir que je garde mon code dans le répertoire Dropbox / code de mon répertoire d’utilisateurs, et qu’il a créé un nouveau sous-répertoire avec le nom que j’ai passé à la commande. Maintenant, allons dans ce répertoire:

> cd mon-site-cool- 
mon -site -cool git: (maître)

Mon shell me dit que je suis dans un référentiel Git et que je suis sur la branche master (j’utilise zshell  et le populaire framework oh my zsh sur un Mac). Ensuite, créons une page d’accueil pour le site Web. Nous pouvons utiliser la commande Unix «echo» pour écrire du texte dans un fichier:

> echo "Hello world" >> index.html

Et assurons-nous que cela fonctionne en utilisant la commande «cat» pour afficher le contenu du fichier:

> cat index.html 
Bonjour tout le monde

Parfait. Maintenant, sauvegardons nos modifications:

> git add. 
> git commit -m "Créer une page d'accueil" 
[master (root-commit) 4854911] Créer une page d'accueil 
1 fichier modifié, 1 insertion (+) 
créer un mode 100644 index.html

Génial, nous avons créé le premier commit (root) dans le dépôt et enregistré la nouvelle page d’accueil. Il est maintenant temps de le partager avec le monde. Tout d’abord, nous devons aller sur GitHub, nous connecter et cliquer sur l’icône «+» juste à gauche de notre image en haut à droite de la page:

Image pour publication

Lorsque vous cliquez dessus, vous verrez une liste déroulante. Sélectionnez «nouveau référentiel» et dans le formulaire qui apparaît, entrez le nom du référentiel. Faisons le même que le nom du répertoire / projet « my-cool-website » pour empêcher quiconque de se tromper. Ensuite, décidez si vous voulez le rendre public ou privé, et cliquez sur le bouton «Créer un référentiel» en bas du formulaire. Ne cochez pas la case «Initialiser ce dépôt avec un README» – c’est génial si vous commencez dans GitHub, mais si vous avez déjà un projet Git, cela vous rend la vie plus difficile.

Image pour publication

Vous devriez alors être redirigé vers une page qui ressemble un peu à ceci:

Image pour publication

Suivez les instructions pour pousser un dépôt existant à partir de la ligne de commande. Dans mon cas, les commandes sont:

> git remote add origin https: //github.com/PeterBell/my-cool-website.git
 > git push -u origin master 
Énumération des objets: 3, terminé. 
Comptage d'objets: 100% (3/3), terminé. 
Objets d'écriture: 100% (3/3), 226 octets | 226,00 Kio / s, terminé. 
Total 3 (delta 0), réutilisé 0 (delta 0) 
Vers https: //github.com/PeterBell/my-cool-website.git
 * [new branch] master -> master 
Branch 'master' set up to track remote branch «maître» de «origine».

Ensuite, actualisez la page dans le navigateur, et félicitations, vous avez maintenant votre premier référentiel en place et hébergé sur GitHub!

Image pour publication

Et si vous souhaitez apporter une modification au projet (peut-être ajouter une page À propos de nous), il vous suffit de coder (apporter les modifications), de valider (les enregistrer dans Git), puis de les pousser (les envoyer vers GitHub).

> echo "A propos de nous page" >> about.html 
> git add. 
> git commit -m "Ajouter une page à propos de nous" 
[master 330a8d1] Ajouter une page à propos de nous 
1 fichier modifié, 1 insertion (+) 
mode de création 100644 about.html 
> git push 
Énumération des objets: 4, terminé. 
Comptage d'objets: 100% (4/4), terminé. 
Compression delta utilisant jusqu'à 8 threads 
Compression d'objets: 100% (2/2), terminé. 
Objets d'écriture: 100% (3/3), 296 octets | 296,00 Kio / s, terminé. 
Total 3 (delta 0), réutilisé 0 (delta 0) 
Vers https://github.com/PeterBell/my-cool-website.git 
   4854911..330a8d1 master -> master

Et maintenant, si vous actualisez la page, vous verrez que les deux fichiers s’affichent et que le nombre de validations est désormais de deux!

Contribuer à un projet

Image pour publication

Tout d’abord, nous devons créer un fork (faire notre propre copie) du dépôt. Pour ce faire, cliquez sur le bouton de la fourche en haut à droite. Lorsque vous faites cela, il va immédiatement bifurquer le dépôt ou faire apparaître une petite fenêtre vous demandant où vous voulez le faire si vous avez accès à divers comptes organisationnels. Si cela vous donne la possibilité, choisissez simplement votre compte personnel.

Une fois que vous avez forké le dépôt, vous allez voir une page très similaire, mais notez l’URL – elle est passée de github.com/flatiron-school/ <repository-name> à github.com/ <your-username> / <repository-name> – donc dans mon cas, c’est https://github.com/PeterBell/contribute-here

Image pour publication

OK, maintenant nous avons notre propre copie du projet, nous pouvons y apporter des modifications. Clonons-le sur notre disque dur, apportons un changement, validons-le et poussons le changement à notre fourchette.

Commencez par vous assurer que vous n’êtes pas dans un dépôt Git. Si c’est le cas, remontez dans un répertoire et réessayez.

> git status 
Sur branche master 
Votre branche est à jour avec 'origin / master'. 
rien à commettre, arbre de travail propre

Hmm, donc je suis toujours dans le repo my-cool-website, laissez-moi remonter un répertoire et réessayer:

> cd .. 
> code git status 
fatal: pas un dépôt git (ni aucun des répertoires parents): .git

Parfait. Maintenant, pour cloner mon fork (télécharger ma copie sur mon ordinateur local), je vais simplement cliquer sur le bouton vert «Cloner ou télécharger» à droite de l’écran:

Image pour publication

Et puis je vais copier l’URL, puis dans un type de fenêtre de terminal, git clonepuis coller l’URL:

> git clone https://github.com/PeterBell/contribute-here.git 
Clonage dans 'contribuez-ici' ...
 remote: énumération des objets: 3, terminé. 
remote: comptage d'objets: 100% (3/3), terminé. 
remote: Total 3 (delta 0), réutilisé 0 (delta 0), pack-reused 0 
Déballage des objets: 100% (3/3), terminé.

Maintenant, cd(changeons de répertoire) dans le répertoire, ajoutons un nouveau fichier, validons-le et poussons nos modifications vers le haut. Je vais appeler mon fichier « test-file.txt ». Appelez le vôtre autre chose que ça, sinon il y aura un conflit plus tard.

> cd contribuez-ici 
> test tactile -fichier.txt 
> git add. 
> git commit -m "Fichier de test ajouté"
 [master a136009] Fichier de test ajouté 
1 fichier modifié, 0 insertions (+), 0 suppressions (-) 
create mode 100644 test-file.txt 
> git push 
Enumération des objets: 4, terminé. 
Comptage d'objets: 100% (4/4), terminé. 
Compression delta utilisant jusqu'à 8 threads 
Compression d'objets: 100% (2/2), terminé. 
Objets d'écriture: 100% (3/3), 279 octets | 279,00 Kio / s, terminé. 
Total 3 (delta 0), réutilisé 0 (delta 0) 
Vers https://github.com/PeterBell/contribute-here.git 
   69cc185..a136009 master -> master

Actualisez maintenant la page dans le navigateur et vous devriez voir le fichier supplémentaire que vous avez créé.

Image pour publication

La dernière étape consiste maintenant à créer une pull request pour demander que votre fichier soit fusionné dans le projet d’origine. Cliquez sur le bouton « Nouvelle demande d’extraction »:

Laissez simplement «comparer les changements» – c’est vrai. Cela signifie que vous souhaitez fusionner les modifications de votre référentiel (branche principale) dans le dépôt d’origine (branche principale), ce qui est correct.

Image pour publication

Cliquez sur le bouton vert «Créer une demande d’extraction». Vous obtenez maintenant un titre et une description dans lesquels vous pouvez expliquer le changement que vous avez effectué et pourquoi vous pensez que c’est un bon ajout au projet.

Image pour publication

Lorsque vous êtes prêt, cliquez sur le bouton vert « Créer une demande d’extraction » et cela vous mènera à la page des relations publiques où tout le monde peut désormais entrer, examiner et commenter votre code, et le propriétaire du projet peut fusionner votre travail s’il J’aime ça!

Image pour publication

Prochaines étapes

Pour GitHub, vous devriez certainement en apprendre un peu plus sur les problèmes, les versions et certaines des autres fonctionnalités intéressantes intégrées. Pour le moment, au moins, vous savez ce qu’est GitHub, pourquoi il est devenu si populaire et vous en avez un peu expérience pratique à la fois de la création et de la contribution à un repo.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *