# Git : commandes pour travailler avec des dépôts distants

- Un dépôt distant est situé sur une autre machine ou en ligne
- Il permet de partager votre travail et tout son historique avec d'autres personnes
- Il permet également de sauvegarder toute votre progression

## Copier un dépôt avec `git clone`

- Copier un projet déjà existant sur Internet ou un serveur.
- Télécharger tout le contenu du dépôt avec son historique.
- Créer un dossier local avec tous les fichiers prêts à être modifiés.

```admonish success title="À retenir"
~~~sh
git clone url_du_dépôt
~~~
```

## Envoyer ses changements avec `git push`

- Envoyer vos modifications locales vers le dépôt en ligne.
- Mettre à jour le dépôt partagé avec vos nouveaux commits.

```admonish success title="À retenir"
~~~sh
git push
~~~
```

## Récupérer les mises à jour avec `git pull`

- Prendre les dernières modifications du dépôt en ligne.
- Fusionner ces changements avec votre travail local.

```admonish success title="À retenir"
~~~sh
git pull
~~~
```

## Ajouter un dépôt distant avec `git remote add`

- Relier votre dépôt local à un dépôt en ligne (distant).
- Donner un nom à ce dépôt distant (souvent `origin`).
- Permettre d’envoyer (`push`) et de recevoir (`pull`) des fichiers.

```admonish success title="À retenir"
~~~sh
git remote add nom url_du_dépôt
~~~
```

```admonish example title="Exemple"
~~~sh
$ git remote add origin https://github.com/mon-projet.git
~~~
```

## Supprimer un dépôt distant avec `git remote remove`

- Retirer la liaison avec un dépôt distant.

```admonish success title="À retenir"
~~~sh
git remote remove nom
~~~
```

## Plateformes

Il existe plusieurs plateformes proposant d'héberger vos projets de code via git. Elles proposent généralement une interface web pour parcourir les projets, ainsi que de nombreuses autres fonctionnalités pour gérer les projets. Exemples :
- GitHub
- GitLab
- Codeberg

Gitlab et Codeberg s'appuient sur des logiciels open source : GitLab et Forgejo. Ces logiciels peuvent être installés sur des serveurs personnels ou d'entreprise pour avoir une plateforme interne à l'entreprise pour héberger le code.