# 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 --help` en indiquant à la place de `` le nom de la commande pour laquel vous souhaitez visualiser la documentation complète. **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. ## Initialisation ##### 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 ... 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 ... ``` ## 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 #### Explication Historique complet de tous les commits git. #### Commande ```git 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 ``` ## Envoyer le(s) commit(s) sur le server #### Explications 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 ```