Prérequis

L’utilisation de Git & Github sur Windows suppose l’installation du logiciel Github Desktop. L’installation de Git sur sa machine peut être un plus si l’on a l’habitude d’utiliser Git en ligne de commande de manière similaire à Linux.

Support de présentation

Rediffusion de la formation

Guide de démarrage rapide (et incomplet !)

Ceci est une copie adaptée de la Formation Github réalisée pour Linux, après avoir appréhendé cette formation vous pouvez passer sur la deuxième partie de la formation faite pour Linux, plus complète.

Github, qu’est ce que c’est ?

Github est un service en ligne qui permet d’héberger ses repositories de code. Github est un outil gratuit pour héberger du code open source. Pour commencer à utiliser Github il faut créer son compte sur la page page d’acceuil, rentrer son nom d’utilisateur , un mot de passe etc. Une fois cela fait, il faut penser à communiquer son pseudo pour pouvoir accéder au dossier d’eirbot.

Récupérer du code d’un autre d’un autre repository

Dans un premier temps il faut s’identifier sur GithubDesktop File>Options>Accounts

Une fois le compte Github créé et relié avec GithubDesktop, du code d’un autre repository peut être récupéré. Pour cela il faut cloner le répertoire, il suffit de cliquer sur clone sur Github et de copier le lien en https ou d’aller directement dans Github Desktop et ouvrir File>Clone repository. (On pourra modifier pour pouvoir utiliser le ssh plus tard).

Une fois dans le menu Clone repository on choisit le dossier que l’on veux cloner ou on peut coller le lien pris sur Github. Il suffit ensuite d’appuyer sur Clone pour récupérer une copie du repertoire.

Cela permet de créér une copie locale du dossier sur notre machine.

Envoyer du code sur Github

Maintenant qu’une copie locale du dossier existe sur la machine, le code (ou n’importe quel fichier) peut être modifié de manière locale. Lorsque le travail terminé il faut synchroniser les modifications effectuées sur le repository local avec le repository distant. L’opération que nous allons décrire permet de valider un ensemble de modifications dans le code pour créer une nouvelle révision, et est communément appelé un commit.

Nous pouvons à tout moment visualiser l’état des modifications que nous avons réalisé en local sur le dépot et qui ne sont pas communiquées à distance via l’interface de GithubDesktop

Une fois que nous connaissons l’état des fichiers il faut choisir ceux que l’on veut envoyer pour cela il suffit de cocher ou décocher la marque bleue.

Une fois que nous sommes sur de toutes les modifications à effectuer nous pouvons effectuer un commit via le formulaire en bas à gauche

Attention ! Les commentaires des commits sont les premières choses que les collaborateurs vont voir, un commit comme ``pause dej’’ n’a aucun intérêt1, les collaborateurs ne peuvent pas comprendre ce que vous avez fait. Il est donc conseillé de commit fichier par fichier en expliquant correctement les modifications réalisées sur chaque fichier.

Il faut ensuite communiquer les modifications à distance pour cela on appuie sur Repository>Push ou Ctrl + P. Une fois push les modifications sont sur le site de Github.

Récupérer des modifications

Pour récupérer en local les dernières modifications du repository Github, il faut utiliser la commande la commande pull utilisable soit via Repository>Pull soit par Fetch Origin (on privilégiera la première solution lorsqu’on travaille sur un dépôt avec des branches et que le concept de branche n’est pas maitrisé)

Gérer un conflit sur du code

Du fait de la présence de multiples dépôts dans lesquels le code peut être modifié, il est possible que la même branche master ait divergé entre deux dépôts (typiquement avec la même branche sur un dépôt distant, comme origin/master). Dans ce cas, une fusion/merge risque d’amener à un conflit. Il convient de ne surtout pas paniquer, cela fait partie des tracas standards du développement logiciel. Mettons que la dernière fusion/merge ait amené au résultat suivant :


  1. Cela a plutôt tendance à énerver vos collègues et les conduire à détruire chaqu’un de vos commits (oui oui c’est possible) ↩︎