Git est un système de gestion de versions, aussi appelé versionnage, qui permet de suivre toutes les modifications apportées à des fichiers, généralement utilisés pour le développement de logiciels.
Ce système fonctionne de pair avec un serveur qui accueille et héberge les fichiers en questions.
Github c’est un site et un service d’hébergement de projets Git, avec un système d’historique/versions. Ça permet d’avoir son projet en ligne, accessible par toute une équipe de son choix, et de pouvoir travailler ensemble facilement, mais aussi revenir en arrière en cas de pépin.
Github gratuit fonctionne surtout pour les petits projets. Si on veut faire un gros projet 3D, il faudra payer un abonnement pour avoir plus de place sur leurs serveurs.
Mais pour unity 2D c’est excellent!
Pour commencer il faut un compte github.
Si vous n’en avez pas, vous pouvez en créer un sur le site de github:
mettez un mail, un mot de passe, etc. (IL FAUT UN MAIL AUQUEL LE MAKER A ACCÈS PENDANT L’ATELIER)
Valider votre mail quand github le demande et pour le compte c’est bon.
Ensuite on télécharge et on installe github desktop:
Github desktop va normalement vous demander de vous connecter à votre compte. Si ce n’est pas le cas, vous pouvez aller dans Fichier > options, et le faire ici.
Et voilà, on a mis en place un github.
Sur Git il existe deux façons de créer un projet:
Les boutons Create et Add permettent de faire un nouveau projet.
Le bouton Clone permet d’ajouter un projet qui est déjà en ligne sur notre compte github. (Ou un projet en ligne auquel on a été ajouté en tant que collaborateur)
La 1er fois que l’on ouvre Github Desktop, ces boutons sont au centre de l’écran.
Si on a déjà un (ou des) projets dans Github Desktop, on retrouve ces boutons dans le menu fichier en haut à gauche:
Pour ceux qui sont sur Unity il faut d’abord décider qui va créer le projet Unity, et inviter les autres membres du groupe en collaborateurs.
Cette personne va créer son projet dans Unity Hub, normalement.
Quand on clique sur ajouter un projet local, on aura alors cette fenêtre:
Qui permet de choisir son dossier.
Si c’est un projet neuf, il n’existe pas encore sur Git, on a donc un message qui nous dit de créer le projet sur Git.
En cliquant le message, on arrive sur la même fenêtre que si on avait cliqué sur « New repository »
On peut choisir le nom du projet sur Git (Name) et le logiciel ou langage utilisé (Git Ignore) (on choisit Unity dans le Git ignore pour ceux qui sont sur Unity)
Une fois fait (si la fenêtre de Add est restée ouverte on peut la fermer)
On envoie notre projet sur le serveur pour la 1er fois avec le bouton « Publish »:
Pour pouvoir travailler sur un projet, il faut que son créateur nous ait mis en collaborateur dessus:
Sur le site de Github, sur la page du projet, on a dans les Settings un menu “Collaborators”
C’est là qu’on peut ajouter les gens par leur pseudo Github.
Attention la personne va recevoir un mail pour accepter l’invitation. Il faudra cliquer sur le lien du mail pour accepter de rejoindre.
Les collaborateurs vont pouvoir accéder au projet et le télécharger.
Cette fois dans Github Desktop on choisit l’option Clone repository.
Github affiche alors une fenêtre avec tous les projets de notre compte, y compris ceux partagés.
Attention à bien choisir le dossier pour télécharger et installer le projet en bas.
Une fois validé, on va indiquer à Unity que ce projet est là.
Dans Unity Hub, on clique la petite flèche de Open, et on choisit: from disk
On n’a plus qu’à retrouver le dossier du projet!
Quand on se prépare à envoyer nos changements on appelle cela un Commit.
Il est de bonne pratique de mettre un titre et une description des changements les plus importants que l’on a fait.
Quand on envoie son commit, on appelle cela un Push. Le push remplace les fichiers sur le serveur par leur nouvelle version qui est dans le commit.
Quand on récupère une mise à jour, on appelle cela un Pull. Une bonne pratique est de faire un Pull avant de commencer à travailler pour être sûr d’avoir la dernière version.
Si on ne Pull pas avant de commit, on peut se retrouver à essayer de push, et Github va nous dire que c’est impossible, et qu’il faut Stash nos changements.
C’est-à-dire les mettre de côté, pour d’abord faire un Pull, puis voir les conflits et les résoudre avant de Push.
En cas de conflits (quand un fichier à été modifié par 2 personnes, que l’une à push, et l’autre essaye de push) Github va nous prévenir, et nous montrer les fichiers en question
Il faut alors choisir quelle version du fichier on veut garder, celle du serveur (origin/main), ou la nôtre. (main)
Ce genre de conflit ne peut pas se régler seul, il faut absolument communiquer avec le reste de l’équipe pour savoir quels changements on été fait, et donc décider quelle version doit rester.