# Comment utiliser Git

> Faites vos premiers pas avec Git sur votre compte d'hébergement, de la création d'un dépôt à la validation et au suivi des modifications de vos fichiers.

Source: https://helpcenter.ruachost.com/fr/developers/version-control/how-to-use-git/

## À propos de Git

Le célèbre système de gestion de versions Git est installé sur tous les comptes d'hébergement mutualisé Ruachost. Pour les comptes VPS et serveur dédié, vous pouvez installer Git vous-même manuellement, ou nous pouvons l'installer pour vous sur demande. Comme d'autres systèmes de gestion de versions, Git vous permet de suivre plusieurs révisions de fichiers et de répertoires.

Les sections suivantes présentent brièvement les fonctionnalités de base de Git.

« Git propose de nombreuses fonctionnalités et commandes, dont beaucoup dépassent le cadre de cet article. Pour obtenir des informations détaillées sur toutes les commandes Git, consultez la [documentation officielle de Git](http://git-scm.com/documentation). »

## Créer un dépôt

Pour créer un dépôt Git, il vous suffit de vous connecter à votre compte Ruachost en SSH, puis de taper la commande suivante :

```
git init repository
```

Remplacez ***repository*** par le nom du répertoire dans lequel vous souhaitez créer le dépôt (si le répertoire n'existe pas encore, la commande git init le crée).  Placez-vous dans le nouveau dépôt :

```
cd repository
```

Pour prendre un instantané de tous les fichiers présents dans le répertoire du dépôt, tapez la commande suivante :

```
git add .
```

La commande git add place les fichiers dans une zone de préparation temporaire que Git appelle l'« index ». Pour enregistrer définitivement (commit) les fichiers dans le dépôt, tapez la commande suivante :

```
git commit
```

Un éditeur de texte s'ouvre et vous pouvez saisir un message de commit décrivant les modifications. Enregistrez le message : Git ajoute alors les modifications au dépôt.

Le message suivant peut s'afficher lorsque vous essayez de valider des modifications :

```
Please tell me who you are.
```

Si vous recevez ce message, tapez les commandes suivantes avec votre propre adresse e-mail et votre nom :

```
git config --global user.email "you@example.com"
git config --global user.name "Your name"
```

## Modifier un dépôt

Git permet de mettre à jour facilement un dépôt. Après avoir modifié un ou plusieurs fichiers, vous mettez à jour l'« instantané » des fichiers dans Git à l'aide de la commande git add. Pour rendre les modifications permanentes dans le dépôt, utilisez la commande git commit.

Vous pouvez combiner les commandes git add et git commit en tapant plutôt la commande suivante :

```
git commit -a
```

Vous pouvez même inclure le message de commit dans la ligne de commande grâce à l'option -m. Remplacez message par votre message de commit :

```
git commit -a -m "message"
```

Pour afficher les modifications apportées aux fichiers du dépôt depuis le dernier commit, tapez la commande suivante :

```
git status
```

De même, pour afficher la liste des modifications déjà validées dans le dépôt, tapez la commande suivante :

```
git log
```

## Travailler avec les branches

Un même dépôt Git peut gérer plusieurs branches de développement. Par exemple, vous pouvez créer une branche « testing » et une branche « production » pour suivre les modifications de différentes versions.

Pour créer une nouvelle branche, tapez la commande suivante en remplaçant *name* par le nom de la nouvelle branche :

```
git branch name
```

Pour afficher la liste de toutes les branches d'un dépôt, tapez la commande suivante :

```
git branch
```

L'astérisque (*) à côté d'un nom de branche indique la branche de travail actuelle. Si vous souhaitez travailler sur une autre branche, tapez la commande suivante en remplaçant name par le nom de la branche :

```
git checkout name
```

Vous pouvez ensuite apporter des modifications dans cette branche et les valider avec la commande git commit. Si vous passez à une autre branche, vous ne verrez pas ces modifications dans celle-ci.

### Fusionner les modifications d'une autre branche

Pour fusionner les modifications d'une branche dans une autre, tapez la commande suivante. Remplacez name par le nom de la branche qui contient les modifications à fusionner :

```
git merge name
```

Les modifications de la branche source name sont alors fusionnées dans la branche de destination (le répertoire de travail actuel).

## Cloner un dépôt

Vous pouvez « cloner » des dépôts. Lorsque vous clonez un dépôt, Git crée une copie exacte d'un dépôt existant. Par exemple, supposons que vous ayez un dépôt nommé *project*. Pour cloner ce dépôt dans un répertoire nommé *projectclone*, vous taperiez la commande suivante en remplaçant username par le nom d'utilisateur de votre compte :

```
git clone /home/username/project /home/username/projectclone
```

Le répertoire *projectclone* contient maintenant une copie exacte du dépôt *project*.

Supposons que vous (ou un autre développeur) apportiez dans le répertoire *projectclone* des modifications que vous souhaitez récupérer dans le répertoire *project* d'origine. Pour cela, vous taperiez les commandes suivantes, en remplaçant là encore username par le nom d'utilisateur de votre compte :

```
cd /home/username/project
git pull /home/username/projectclone master
```

La commande git pull remplit deux fonctions. D'abord, elle récupère les modifications d'un dépôt distant (ici, le dépôt *projectclone*). Ensuite, elle fusionne ces modifications dans le dépôt de travail actuel (ici, le dépôt *project*).

Si vous essayez de cloner un dépôt Git stocké sur un serveur distant (comme GitHub) en HTTPS, le message d'erreur suivant peut s'afficher :

```
error: error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
while accessing https://example.com/repository/

fatal: HTTP request failed
```

Cette erreur se produit lorsque jailshell est activé sur votre compte. Ouvrez un ticket d'assistance depuis l'espace client à l'adresse <https://dashboard.ruachost.com/> et demandez un accès shell normal pour votre compte.

## Plus d'informations

Pour consulter la documentation officielle de Git, notamment les guides de référence, les tutoriels, les aide-mémoire et bien plus encore, rendez-vous sur <http://git-scm.com/documentation>.
