[Git](https://git-scm.com/) est un logiciel de [gestion de version](https://fr.wikipedia.org/wiki/Gestion_de_versions).
## Interfaces et serveurs
Git permet de stocker et sauvegarder des documents ainsi que leurs versions précédentes sur un serveur prévu à cet effet. Les plus connus sont :
- [Github](https://github.com/)
- [Gitlab](https://about.gitlab.com/)
- [Bitbucket](https://bitbucket.org/)
- [Gitea](https://gitea.io/)
Certains de ces services proposent des fonctionnalités avancés de suivi des bugs, d’automatisation des tâches, etc.
::: info
Les trois premiers proposent un compte gratuit largement suffisant pour un usage classique.
Le dernier est à installer sois-même sur un serveur.
:::
## Utilisation locale
### Outils
Afin de créer et gérer un dépôt de documents (généralement un dossier contenant le code source de notre projet), il est nécessaire d’utiliser un terminal. Il est possible d’utiliser le terminal intégré à son logiciel de développement ou celui de son système d’exploitation :
- **terminal** sur MacOS et linux
- **powershell** sur Windows
### Authentification du serveur
Pour éviter d’avoir à renseigner le mot de passe de son compte github, gitlab, gitea à chaque fois, il est recommandé d’utiliser une clé SSH. Ce protocole permet une authentification en arrière plan de votre machine auprès du serveur.
Afin de générer une clé, renseignez et validez la commande suivant dans le terminal :
```bash
ssh-keygen -t ed25519 -C "VOTRE_EMAIL"
```
Ne renseignez pas de mot/phrase de passe. Vous devriez recevoir une réponse du terminal contenant la localisation de la clé sur votre ordinateur ainsi qu’une “empreinte” de clé.
Vous devez ensuite récupérer la clé publique, généralement `id_ed25519.pub`, copier son contenu et le coller dans les paramètres de votre compte github, gitlab, etc.
### Création d’un dépôt
Les étapes de création d’un dépôt sont quasiment systématiquement les mêmes :
1. ouvrir le dossier de travail dans le terminal
2. taper la commande `git init`
3. se rendre sur son serveur git en ligne
4. créer un nouveau dépôt vide depuis l’interface
### Envoyer des fichiers vers le serveur
Maintenant que le dépôt est créé, il faut faire le lien entre votre projet local et dépôt sur le serveur. À l’intérieur du dépôt distant vide, vous devriez trouver des commandes fournies par le serveur. Ces commandes peuvent-être copiées/collées dans l’ordre dans le terminal.