Git est un système de contrôle de version gratuit et open source qui vous aide à suivre et à gérer les modifications apportées à votre code. Il est utilisé par les développeurs pour partager du code et collaborer sur des projets.

Qu'est-ce que Git ? Et pourquoi devriez-vous l'utiliser?

Git est un système de contrôle de version gratuit et open source qui vous aide à suivre et à gérer les modifications apportées à votre code. Il est utilisé par les développeurs pour partager du code et collaborer sur des projets.

Git est un outil puissant pour les développeurs, mais il peut également être utilisé pour gérer de nombreux types de projets différents. Il est suffisamment flexible pour travailler avec n'importe quel type de fichier ou de projet, et il est également très efficace pour gérer des fichiers volumineux.

Qu'est-ce que Github ? Et pourquoi devriez-vous l'utiliser?

Github est un service d'hébergement de code source comme pour les projets de développement de logiciels. Il offre toutes les fonctionnalités distribuées de contrôle de version et de gestion de code source de Git, ainsi que l'ajout de ses propres fonctionnalités.

Github est une plate-forme où les développeurs peuvent collaborer sur des projets logiciels en partageant du code, des idées et des problèmes. Il est devenu le plus grand hébergeur de code au monde avec plus de 27 millions d'utilisateurs et 100 millions de référentiels.

Sur Github, vous pouvez également créer des référentiels privés si vous souhaitez garder votre projet secret jusqu'à ce que vous soyez prêt à le publier.

Quelle est la différence entre git et Github?

Git est un outil de gestion du code source et d'autres fichiers, y compris la possibilité de créer de nouvelles versions des fichiers. Github est un service qui héberge des dépôts git comme Gitlab ou Bitbucket. Git est un projet open-source qui a été créé par Linus Torvalds en 2005. Il a été utilisé par de nombreux développeurs depuis lors et il est devenu l'un des outils les plus populaires pour le contrôle de version et la collaboration avec d'autres sur des projets.

Installation de git

Les deux premières choses à faire sont d'installer git et de créer un compte GitHub gratuit. Suivez les instructions ici pour installer git (s'il n'est pas déjà installé).

Création de compte Github

Pour créer un compte Github rendez-vous ici  ensuite, mettez votre email sur le champs et cliquez sur le bouton "Sign up for GitHub".

Suivez les instructions et validez votre email.

Créer un dépôt(repo) git sur votre machine

Lorsque vous créez un nouveau projet sur votre machine locale à l'aide de git, vous devez d'abord créer un nouveau dépôt (ou souvent, un "repo", pour faire court). Pour utiliser git, nous allons utiliser le terminal.

Pour commencer, ouvrez un terminal et allez à l'endroit où vous voulez placer le projet sur votre machine locale en utilisant la commande cd (changer de répertoire).

mkdir cours-git-et-github
cd cours-git-et-github

Pour initialiser un dépôt git à la racine du dossier, exécutez la commande git init:

$ git init

Initialized empty Git repository in /path/to/tutorials/cours-git-github/.git/

Ajouter des fichiers au dépôt

Allez-y et ajoutez un nouveau fichier au projet, en utilisant n'importe quel éditeur de texte que vous aimez ou en exécutant la commande touch. La commande touch cours-git.txt crée et enregistre simplement un fichier vierge nommé cours-git.txt.

Une fois que vous avez ajouté ou modifié des fichiers dans un dossier contenant un dépôt git, git remarquera que le fichier existe dans le dépôt. Mais, git ne suivra pas le fichier à moins que vous ne le lui demandiez explicitement. Git ne sauvegarde/gère que les modifications des fichiers qu'il suit, nous devons donc envoyer une commande pour confirmer que oui, nous voulons que git suive notre nouveau fichier.

$ touch cours-git.txt
$ ls
cours-git.txt

Après avoir créé le nouveau fichier, vous pouvez utiliser la commande git status pour voir quels fichiers git sait qu'ils existent.

$ git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	cours-git.txt

nothing added to commit but untracked files present (use "git add" to track)

Ce que cela dit en gros, c'est : "Hé, nous avons remarqué que vous avez créé un nouveau fichier appelé cours-git.txt, mais à moins que vous n'utilisiez la commande 'git add', nous n'allons rien en faire".

Indexer l’ajout ou les changements d’un fichier

Indexer l’ajout ou les changements d’un fichier en utilisant la commande git add.

Si vous exécutez encore la commande git status, vous verrez que git a indexé le fichier (remarquez la ligne "Changes to be committed").

$ git add .
$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   cours-git.txt

Valider les modifications

Il est temps de créer votre premier commit!

Lancez la commande git commit -m "Votre message à propos du commit".

$ git commit -m "Mon premier commit"
[main (root-commit) fdcbaa6] Mon premier commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 cours-git.txt

Le message à la fin du commit doit être en rapport avec le contenu du commit - il peut s'agir d'une nouvelle fonctionnalité, d'une correction de bogue ou d'une simple correction de faute de frappe. Ne mettez pas un message comme "testdsd" ou "somethingcool". Cela rend les autres personnes qui voient votre commit triste. Très, très, triste😢 . Les commits vivent pour toujours dans un dépôt (techniquement vous pouvez les supprimer si vous en avez vraiment, vraiment besoin mais c'est compliqué), donc si vous laissez une explication claire de vos changements, cela peut être extrêmement utile pour les futurs programmeurs (peut-être le futur vous !) qui essaient de comprendre pourquoi un changement a été fait des années plus tard.

Visualiser l’historique des validations

Nous utilisons la commande git log pour visualiser l'historique.

Par défaut, git log énumère en ordre chronologique inversé les commits réalisés. Cela signifie que les commits les plus récents apparaissent en premier.

$ git log

commit fdcbaa69950e6f261756650551da3a8ccf7d0c9f (HEAD -> main)
Author: Ousseynou Diop <[email protected]>
Date:   Tue Sep 6 08:38:03 2022 +0000

    Mon premier commit
(END)

Enregistrer des modifications dans un dépôt distant

Au début du tutoriel, nous avons créé un compte GitHub, c'est le moment de l'utiliser.

Étape 1: Créer un nouveau dépôt sur Github

Rendez-vous sur Github et cliquez sur le bouton "+" en haut à droite, ensuite, cliquez sur "new repository".

Remplissez les infos et cliquez sur "create repository".

Étape 2: Travailler avec des dépôts distants

Pour pouvoir collaborer sur un projet Git, il est nécessaire de savoir comment gérer les dépôts distants. Les dépôts distants sont des versions de votre projet qui sont hébergées sur Internet ou le réseau d’entreprise. Vous pouvez en avoir plusieurs, pour lesquels vous pouvez avoir des droits soit en lecture seule, soit en lecture/écriture.

Exécutez la commande git remote add pour linker notre dépôt distant à celui sur notre machine(local).

git remote add origin https://github.com/pifet90/cours-github.git

Étape 3: Pousser son travail sur un dépôt distant

La commande push sert à envoyer tout les «commits» effectués se trouvant dans le répertoire Git/dépôt (HEAD) de la copie du dépôt local vers le dépôt distant.

Exécutez la commande git push, si c'est votre premier push, vous avez besoin d'ajouter cette partie git push -u origin <nom branche>.

Vous devez avoir les droits nécessaires pour pousser sur un dépôt distant. N'oubliez pas de renseigner vos identifiants Github.
$ git push -u origin main
Username for 'https://github.com': pifet90
Password for 'https://[email protected]':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 308 bytes | 102.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/pifet90/cours-github.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

Vous venez de pousser votre travail. Bravo! 🎉

Ce tutoriel devrait suffire à vous faire découvrir Git et Github. Si vous voulez aller plus loin, inscrivez-vous à notre prochaine cohorte.

Consultez le livre de Git pour approfondir vos recherches: https://git-scm.com/book/fr/v2/