PHPCourse/GIT/git_commands.md

186 lines
5.3 KiB
Markdown
Raw Normal View History

2021-10-26 19:48:40 +02:00
# Introduction aux commandes GIT basics
Les commandes présentées ci-dessous peuvent avoir des paramètres et fonctionnalités supplémentaires qui sont disponibles sur la [doc de git](https://git-scm.com/docs).
Si vous avez des problème avec une commande, il est interessant d'utiliser la commande `git <command-name> --help` en indiquant à la place de `<command-name>` le nom de la commande pour laquel vous souhaitez visualiser la documentation complète.
2021-10-26 19:48:40 +02:00
**Légende**
* *Hiqtorique (history)* : Ensemble de tous les commits effectués.
* *Curseur (index/stage)* : Ensemble de tous les fichiers qui ont été ajoutés avec `git add ...`.
* *Projet (working directory)* : Emplacement du `.git` ainsi que de tous les fichiers du projet.
2021-10-26 15:04:42 +02:00
## Initialisation
2021-10-26 19:48:40 +02:00
##### Explications
Permet d'initialiser un nouveau repository git dans l'emplacement courant ou est exécuté la commande.
##### Commande
```git
git init
```
## Informations utilisateur
#### Explications
Permet de définir vos informations privées pour être identifié lors de commits locaux et distants. Le `--global` permet de modifier ces informations pour tous les repository sauf ceux ou vous avez changé vos informations localement. Le paramètre `--list` permet de visualiser la liste des options/config disponbibles.
#### Commande
```git
git config --global user.name "your name"
git config --global user.email "your email adress"
git config --list
```
## Visualiser le statut
##### Explications
Permet d'afficher les fichiers qui ont été ajoutés dans le repository locale, modifier, supprimer ainsi que ceux présent dans le curseur.
##### Commande
```git
git status
```
## Visualiser les différences
##### Explications
Permet d'afficher les modifications effectuées dans tous les fichiers et sous dossiers du repository git.
##### Commande
```git
git diff
```
## Ajoouter au curseur
#### Explications
Permet d'ajouter des éléments qui ont été modifiés du projet au curseur de modification dans le but d'effectuer un commit. **<!> Après avoir ajouter un élément au curseur il est strictement interdit de le modifier <!>**
L'option `.` et `--all` permettent d'ajouter tous les fichiers modifiés au curseur.
#### Commande
```git
git add <file-name>...
git add --all
git add .
```
## Supprimer du curseur
#### Explications
Lors que l'on a ajouter un élément au curseur par erreur et qu'on souhaite l'en retirer pour pouvoir à nouveau l'éditer ou pour le grader hors du prochain commit, il suffit d'utiliser restore avec le paramètre `--stage` qui indique "du curseur"
#### Commande
```git
git restore --stage <file-name>...
```
## Effectuer un commit
#### Explications
Le commit est l'action d'envoyer son curseur dans l'historique, il à comme prérequis la présence d'items dans le curseur et la définition d'un message de commit. Faire un commit revient à indexer une copie du projet dans l'historique git.
#### Commande
```git
git commit -m "a simple description of changes"
```
## Visualiser l'historique des commits
2021-10-26 15:04:42 +02:00
#### Explication
2021-10-26 19:48:40 +02:00
Historique complet de tous les commits git.
2021-10-26 15:04:42 +02:00
#### Commande
```git
2021-10-26 19:48:40 +02:00
git log
```
## Rétablir le projet au dernier commit
#### Explications
Supprime toue les modification des fichiers et dossiers et rétablit le dernier commit dans le répertoire de travail locale.
#### Commande
```git
git reset --hard
```
## Ajout d'un server git (GitHub, Gitea)
#### Explications
Permet d'ajouter un server git distant au projet git local sous le nom de `origin`.
**<!> Ne pas oublier de setup la branch local avec celle du server et de pull <!>**
#### Commande
```git
git remote add origin <remote-git-repository-adress>
2021-10-26 15:04:42 +02:00
```
2021-10-26 19:48:40 +02:00
## Envoyer le(s) commit(s) sur le server
2021-10-26 15:04:42 +02:00
2021-10-26 19:48:40 +02:00
#### Explications
2021-10-26 15:04:42 +02:00
2021-10-26 19:48:40 +02:00
La commande pour setup une branche est la même que celle pour envoyer vos commits sur le server à la différence qu'elle prend plus de paramètres, voir la doc pour plus d'informations.
Dans l'example ci-dessous nous configuront la branche `master`, le mot `origin` indique que nous travaillons avec le server configuré précédement, cela permet de faire le lien lors de la configuration.
La configuration d'une branche est une opération qui ne ce réalise qu'une seul fois. Si votre branche est configuré utilisé simplement `push` pour envoyer vos modification.
**<!> Attention pour pouvoir push il faut que votre code soit à jour avec celui des autres développeurs (ces pour cela que l'on utilise des branch) si ce n'est pas le cas utilisez `pull` avant de commit et de push <!>**
#### Commande
```git
git push
git push -u origin master
```
## Télécharger la dernière version du code sur le server
#### Explications
Permet de télécharger sur votre ordinateur les dernières modification effectué sur le repository du server, ce pour vous tenir à jour. Il est très important de rester à jour lorsque l'on travail sur un projet avec plusieurs développeurs.
La commande pull va télécharger les dernières modification et les fusionner si possible avec votre code, attention si vous n'avez pas envoyé vos modification sur le server précédement cela peut dans certain cas poser problème.
#### Commande
```git
git pull
```
## Cloner un projet
#### Explications
Permet de télécharger un projet à vous ou pas, présent sur un server git du type (GitHub, Gitea...) et d'en faire une copie locale.
#### Commande
```git
git clone <remote-git-repository-adress>
```