GIT

Méthode de travail avec Git, GitHub et Gitkraken

Dans cet article, je vous propose une méthode pour versionner votre code à l’aide de Git, GitHub et Gitkraken. Le but sera de n’utiliser aucune commande de Git et de structurer votre développement pour gagner en efficacité et réduire les erreurs de manipulation.

Préparation de l’environnement GitHub

La première étape se passe au niveau de GitHub. Il vous faut déjà vous créer un compte si vous n’en avez pas !

Nous allons donc créer un nouveau repository

GitHub : création d'un repository
Création d’un repository Github

Si vous n’avez pas de version payante de Gitkraken, il vous faudra laisser le repository en public.

Le readme.md vous permettra d’une part d’expliquer le projet et d’autre part de donner les consignes d’installation.

Après validation, le projet est ainsi créé avec la branche principale main.

Installation de Gitkraken

Gitkraken est un client git permettant de réaliser toutes les actions de git sans passer par les lignes de commandes. Il permet d’avoir un rendu visuel des différentes branches.

Vous pouvez le récupérer à cette adresse :

https://www.gitkraken.com/download

Une fois l’application installée, il faudra vous connecter dessus. Je vous conseille d’établir la connexion avec Github

Gitkraken : Sign in with GitHub
Sign in with GitHub

L’avantage de procéder ainsi est qu’une relation sera présente entre GitHub et Gitkraken. En appuyant sur le bouton, vous allez être redirigé vers votre navigateur

GitHub : Autorisation
Demande d’autorisation d’accès à GitHub

Il vous faut appuyer sur le bouton continue authorization et le message suivant s’affichera. il peut également vous demander votre mot de passe GitHub.

GitHub : Autorisation validée
Autorisation approuvée

Maintenant que cette étape (à ne faire qu’une fois) est réalisée, nous allons pouvoir cloner notre repository GitHub en appuyant sur le bouton Clone a repo.

Récupération du repository GitHub

GitKraken : clone a repo
Bouton de clonage de repository

L’interface suivante est découpée en 3 parties. Dans la première, on sélectionne Clone, à partir de GitHub.com. Et enfin, on défini le répertoire local qui accueillera notre repository (Where to clone to) et on sélectionne dans la liste le repository à cloner (Repository to clone). Et on clone le repo!

GitKraken : clone a repo
Interface de clonage du repository

A ce niveau, j’ai le repository distant et le repository en local de synchronisé.

Gitkraken : vue d'un repository
vue Gitkraken d’un repository

D’ailleurs, le fait que le repository soit synchonisé est visible sur la partie centrale, au niveau de la branche main, vous avez 2 icônes. 1 icône représentant l’ordinateur signifie que la branche main est bien en local et l’autre icône représentant votre gravatar correspond au fait que la branche est présente sur GitHub.

Création de la branche Dev

La méthode que je vous propose est donc le feature branching. Je vais créer une branche par feature, par fonctionnalité ou étape de notre projet.

Pour faciliter l’utilisation de Git je vais vous imposer quelques règles :

  • Ne jamais faire de commit sur la branche main qui correspond à la partie stable de notre projet, c’est à dire l’application ou le site web en production
  • Créer une branche dev qui sera la branche à partir de laquelle nous allons tirer nos branche feature
  • Ne jamais faire de commit sur cette nouvelle branche dev
  • N’avoir qu’une seule branche feature active à la fois
  • Merger une branche feature si et seulement si la fonctionnalité est totalement développée et vérifiée soit à partir de validator comme le w3c soit à partir de tests unitaires et fonctionnels

Donc je vais commencer par créer la branche dev soit la branche de développement tirée à partir de main.

Faire un clic droit dans la partie centrale sur main et cliquer dans le menu contextuel sur create branch here et la nommer dev.

Gitkraken : Création de la branche Dev
Gitkraken : Création de la branche Dev

Comme on le constate sur l’illustration, la branche dev n’et présente qu’en local. Nous allons donc l’envoyer sur GitHub en faisant un clic droit dessus et en appuyant sur push et en validant avec submit.

Gitkraken : Push de la branche Dev
Gitkraken : Push de la branche Dev

Sur Gitkraken, je peux contrôler visuellement que les deux premières branches sont sur le repository local et distant.

Gitkraken : Contrôle des branches en local et sur GitHub
Gitkraken : Contrôle des branches en local et sur GitHub

Utilisation du feature branching

Je vais maintenant créer la première branche de feature qui généralement se nomme structure dans mes projets. En effet, c’est la branche où je plante le décor de mon projet. Par exemple, pour des projet sous Symfony, je procède à l’installation de Symfony dans ce répertoire et je fais les premiers paramétrages globaux comme l’ajout du .gitignore. Dans notre exemple, je vais juste faire une création d’un fichier index.html avec la structure html, installer SASS et faire le paramétrage du package.json. Je traiterais SASS dans un autre article.

Dans cette exemple, je vais aussi utiliser le fichier .gitignore. Le but de se fichier est d’exclure des fichiers et répertoires des commit.

Gitkraken : Création de la branche structure
Gitkraken : Création de la branche structure

J’ai créé mes fichiers pour préparer mon projet, ma structure est finalisée et je n’ai pas d’erreur au w3v html validator

VSC : Structure classique de projet
VSC : Structure classique de projet

Je complète mon fichier readme.md au fur et à mesure

Maintenant, je vais ajouter l’ensemble de ces fichiers dans la branche structure en faisant un commit à partir de Gitkraken.

Si je regarde Gitkraken de plus près, j’ai une zone qui s’est affiché au dessus de ma branche structure.

Gitkraken : nouvelle zone pour les commits
Gitkraken : nouvelle zone pour les commits

Si je clique sur //WIP, une fenêtre s’affiche sur la droite :

Gitkraken : préparation du commit
Gitkraken : préparation du commit

Cette fenêtre se compose de 3 zones :

  • La zone du haut présente les fichiers que vous allez pouvoir commiter. Vous pouvez soit tous les commiter en une fois en appuyant sur le bouton stage all changes soit sélectionner les fichiers que vous voulez.
  • la zone staged files (0) affiche les fichiers présents dans le commit
  • et enfin la zone commit message avec le nom du commit et sa description
GitKraken : commit initié
GitKraken : commit initié

Dès que j’appuie sur le bouton Commit changes to 8 files, j’ai le commit qui apparait en local

Gitkraken : premier commit effectué
Gitkraken : premier commit effectué

Et je push mon commit pour qu’il soit sur GitHub

GitKraken : synchronisation du local et du distant (GitHub)
GitKraken : synchronisation du local et du distant (GitHub)

Ma première Pull Request sur GitHub (PR)

Maintenant que j’ai terminé ma branche structure, je vais effectuer une Pull Request (PR) à partir de GitHub. Dans le langage Git, je vais faire un merge de la branche structure vers la branche dev.

Donc à partir de GitHub, je clique sur le l’onglet Pull Requests puis sur le bouton New Pull Request.

GitHub : Préparation de ma première PR
GitHub : Préparation de ma première PR

kjh

GitHub : Comparaison de structure vers dev
GitHub : Comparaison de structure vers dev

Je vais comparer la branche structure à la branche dev et appuyer sur Create pull request.

GitHub : Merge de la pull request
GitHub : Merge de la pull request

Maintenant, j’appuie sur Merge pull request.

GitHub : Confirmation du merge
GitHub : Confirmation du merge

Ensuite on confirme en appuyant sur Confirm Merge.

Sur Gitkraken, je me positionne sur la branche dev en double cliquant dessus.

et nous allons faire un pull rebase. L’option rebase se trouve au niveau de la liste des pull.

Gitkraken : pull rebase
Gitkraken : pull rebase

Et au final, j’obtient avoir un graphique identique à l’image ci-dessous

Gitkraken : fin de la branche structure
Gitkraken : fin de la branche structure

Conclusion

En conclusion, a chaque fois que vous allez tirer une branche de dev, elle contiendra toutes les branches précédentes. Vous allez pouvoir ainsi ajouter des features ou des sections de pages.

Une fois toutes les features réalisées, il faudra faire une dernière pull request de la branche dev vers la branche main.

Cliquez pour évaluer cet article !
[Total: 3 Moyenne : 5]

Laisser un commentaire

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