Il s’agit de télécharger le dépôt d’un logiciel depuis Internet en créant un dossier contenant le code ainsi que son historique Git:
git clone <url dépot>
puis cd <dépôt>
pour aller dans le dossier du dépôt.
git clone https://github.com/YunoHost/gertrude/
et cd gertrude
,https://github.com/spring-projects/spring-petclinic
et cd spring-petclinic
https://github.com/miguelgrinberg/microblog
et cd microblog
git log
pour voir la liste des commits
git checkout <commit num>
pour vous déplacer au niveau d’un commit : le code dans le dépôt change.
git diff <commit_1> <commit_2>
pour voir ce qui a changé entre deux commits.
Plus pratique : apt install tig
et tig
pour explorer chaque commit ou alors utilisez VSCode et GitLens
Un dépôt Git téléchargé depuis Internet peut être privé : il faut alors se connecter avant à son compte (en HTTP ou SSH) pour le télécharger. Quand on veut modifier le dépôt distant (ajouter des commits), il faut de toute façon se connecter à un compte.
master
et les branches d’un dépôtUn dépôt git permet d’avoir plusieurs historiques en parallèle qu’on appelle des branches. Un dépôt git ressemble à un arbre.
La branche principale s’appelle master
dans git (par convention), parfois main
.
Ça commence à devenir compliqué ! Mais on va souvent travailler avec seulement deux branches 😌
master + une branche pour votre travail en cours.
Si git mémorise les commits successifs du dépôt c’est en particulier pour permettre de “remonter le temps”, c’est-à-dire remettre le code du dépôt dans un état antérieur.
git checkout <commit>
. L’historique se met également à jour.git diff
permet à tout moment d’afficher les différences entre deux points du dépôt.Dans git, HEAD
désigne un curseur qui indique dans quel état est le dépôt actuellement.
HEAD
pointe sur le dernier commit de la branche (master
s’il n’y en a qu’une).HEAD
.git reflog
affiche l’historique des déplacements de HEAD
.Plusieurs éditeurs de code proposent des interfaces graphique pour :
C’est le cas de VSCode, en particulier avec les extensions Git Graph et GitLens.
D’autres interfaces pratiques et indépendantes de l’éditeur : tig, meld, …
git reset
et git reset --hard
Attention: git reset --hard
peut vous faire perdre votre travail s’il n’est pas dans un commit !!!
git reset
: réinitialiser le HEAD
au commit indiqué en gardant les modifications.git reset --hard
: réinitialiser le HEAD
au commit indiqué en perdant les modifications