GitHub est une plateforme open source de gestion de versions et de collaboration destinée aux développeurs de logiciels.
Elle repose sur Git, un outil de versionnement open source. Il permet d’avoir une chronologie des développements sans perte, qui peuvent être aisément multi-utilisateurs en précisant l’auteur, la date et la description (message) de chaque changement effectué par un des utilisateurs.
On retrouve un système de branchements pour différentes versions de code avec un tronc commun.
Ce qu’on appelle un dépôt Git est une sorte de système de fichiers (base de données), enregistrant les versions de fichiers d’un projet à des moments précis au cours du temps sous forme d’instantanés. Il est important de garder une trace de vos développements sur vos projets bien structurés.
Il est important de savoir que Github n’est pas le seul site de dépôt fonctionnant avec Git. Les lignes de commandes de ce tuto sont aussi compatibles avec GitLab, Gerrit, Bitbucket et Codebase pour citer les plus connus. Dans ce tuto, on se concentrera sur Github.
Installation
Installer Git Bash : Cela permettra au Terminal de votre ordinateur de reconnaître et d’exécuter les commandes Git qu’on verra plus tard.
Vous pouvez installer aussi Git sur Linux avec la commande suivante dans la console :
sudo apt-get install git
Installer TortoiseGit : TortoiseGit est une extension pour Windows pour utiliser les commandes Git de façon graphique via l’explorateur de fichiers. Les fonctions Git seront des options supplémentaires accessibles avec un clique droit sur n’importe quel dossier.
Cloner un dépôt
Une fois Git installé, pour commencer il vous faut Cloner un dépôt( un dépôt ) créer sur Github. Une fois que votre dépôt Github est prêt, on ouvre le terminal de commande :
On comme par créer le répertoire sur votre ordinateur qui va recevoir le clone du dépôt.
mkdir nom-de-repertoire
cd nom-de-repertoire
Ensuite, on configure Git avec ses identifiants ( adaptez le contenu ) :
git init
git config --global user.name "VotrePrénom VOTRENOM"
git config --global user.email "votremail@mail.com"
Et on fini par cloner le dépôt dans un répertoire :
git clone https://github.com/VotreRepository [NomRepertoire]
Télécharger un dépôt en ligne de commande sur Linux
Pour pouvoir télécharger les fichier d’un dépôt, il est nécessaire d’avoir une clé de sécurité (ou token) lié à votre compte Github.
Créer une clé SSH sous Github :
$ ssh-keygen -t ed25519 -C "your_email@example.com"
lancer ssh-agent puis ajouter la clé a ssh-agent
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_ed25519
Enfin ajouter la clé SSH à votre compte
Entrer la commande suivante pour afficher la cl »
$ cat ~/.ssh/id_ed25519.pub
Copier le résultat de la commande et copier la dans les paramètres de votre compte github dans le menu SSH and GPG Keys.
Une fois la clé généré et lié à votre compte, vous pouvez entrer la commande suivante pour télécharger le repositry
git clone git@github.com:<account_name>/<repo_name>.git
Mise à jour des modifications (add, commit, push & pull)
Une fois que vous avez cloné votre dépôt dans votre répertoire, si vous avez fait une modification au répertoire, que ce soit un nouveau fichier ou la modification d’un fichier déjà présent, il faut maintenant mettre à jour le dépôt en ligne qui gardera l’historique de vos modifications :
git add NomDuFichier.extension
git commit -m "commentaire"
add permet d’ajouter un nouveau fichier ou ses modifications au dépôt de travail actuel. Vous pouvez en faire plusieurs d’affilés.
commit permet de procéder les modifications sur le dépôts, comprenant les fichiers que vous venez d’ajouter ainsi que les modifications apportés sur les fichiers avec le git add. On peut ajouter ( et c’est fortement recommandé ) un commentaire au commit effectué pour préciser ce que vous avez changé, ajouté ou supprimé. Cela permettra d’avoir une meilleur lisibilité de l’historique des commit sur le repository.
git push origin main
push permet de pousser la branche courante vers celle que vous souhaitez cibler sur le dépôt distant. Ici, origin main précise de pousser la branche main (local) vers la branche main (origin).
Désormais, vous verrez les modifications de votre dépôt apparaître sur dépôt en ligne, avec le commit et son commentaire effectué juste avant.
git add, git commit et git push sont des commandes complémentaires.
git pull origin main
pull permet de télécharger et fusionner les nouvelles données en provenance du dépôt distant dans votre répertoire. Cela mettra à jour votre répertoire par rapport au dépôt en ligne avec les dernier commits qui y ont été push. Vous pouvez aussi ajouter l’option –rebase avant le dépôt et l’origin, pour au lieu de fusionner les nouvelles données, vous allez rebaser votre répertoire ( mais ne le faites jamais sur un dépôt publique. )
Listes de commandes de bases
Voici une liste non exhaustive de commandes Git qui est utile de connaître :
git status
status permet d’afficher l’état des fichiers du répertoire courant. On retrouve 3 status différents :
– Untracked files : fichiers non versionnés ( qui n’ont pas été add et qui sont nouveaux )
– Changes to be commited : modifications ( ajout, suppressions, changements ) chargées en zone de transit ( add mais pas commit ) ou indexés.
– Changes not staged for commit : modifications n’ayant pas été chargées en zone de transit ( fichiers déjà existant mais qui n’ont pas add ni commit )
git reset Nomdufichier.extension
reset permet d’annuler les modifications indexées d’un fichier.
git checkout -- Nomdufichier.extension
checkout permet d’annuler les modifications non encore indexées d’un fichier.
git log
log permet de voir l’historique des commits.
git rm Nomdufichier.extension
rm permet d’indexer la suppression d’un fichier. Vous pouvez ajouter l’option –cached avant le nom du fichier pour déversionner le fichier à la place.
git diff
diff permet d’afficher le détail des modifications non indexées. Vous pouvez ajouter l’option — staged pour les modifications indexées.
git remote
remote permet d’afficher la liste de tous les dépôts distants du projet ( il peut arriver sur certains projets de travailler avec différents dépôts distants pour un seul même Projet ).
git remote add Nom https://github.com/VotreRepository
remote add est une alternative à git clone, cependant là où git clone copie le dépôt en ligne, ici il est question d’ajouter un nouveau dépôt en parallèle d’un dépôt déjà présent sur votre ordinateur dans votre répertoire.
git fetch origin
fetch permet de récupérer les modifications d’un dépôt distant ( le nom du dépôt est usuellement origin mais adaptez le en fonction de ce que vous avez besoin ).
Utilisation de Tortoise
Pour ceux qui n’ont pas envie d’écrire des lignes de commandes dans un terminal sur Windows, vous pouvez utiliser TortoiseGit pour utiliser Git graphiquement.
Créer un dossier vide et faite ensuite un clique droit dessus. Vous verrez apparaître dans les différentes options TortoiseGit qui permet d’accéder aux différentes commande de Git :
On commence par configurer TortoiseGit en cliquant sur Settings :
Ensuite on peut cloner un repository en cliquant sur Clone :
Pour récupérer les données, il suffit de cliquer sur Pull. On peut y choisir de quel branche et de quel dépôt récupérées les donnés :
Pour envoyer les modifications apportés en local, il suffit de cliquer sur Commit. On conseille d’écrire un commentaire, le nom de l’auteur du commit et la date et heure. On peut aussi Push en même temps avec l’option Commit&Push. Le commit est disponible en cliquant sur Log qui nous montre l’historique des commits :