git
Edition 2024
Qu’est-que Git ?
Git est un contrôleur de version, il permet de conserver un historique des
modifications et des versions de tous les fichiers. Pour obtenir ce résultat, les
fichiers qui composent votre projet doivent être pris en compte par git et
centralisés.
Il permet de travailler en équipe sans supprimer
les modifications des autres, de revenir en
arrière (correction de bugs, modification d’une
fonctionnalité) et de suivre l’évolution d’un code
source (qui a programmé telle fonctionnalité, de
quand date tel bug, …).
Fonctionnement
Git dans sa version basique fonctionne en ligne de commande dans un terminal.
Petit rappel des commandes Unix :
pwd : savoir dans quel dossier vous êtes
ls : lister les fichiers et les dossiers présents (ls - a affiche également les fichiers
cachés)
cd : changer de dossier (exemple : cd Documents/Projets/Algo)
Une fois que vous maîtrisez les commandes de base de git, vous pouvez
également l’utilisez grâce aux modules intégré dans votre IDE.
Les dépôts
Les dépôts aussi appelé repository (repo) sont des espaces de stockage, un
entrepôt virtuel dans lequel vous pouvez enregistrer les versions de votre projet.
Il existe plusieurs type de dépôts :
- dépôt local, sur votre machine
- dépôt distant, ou vous voulez
Avec un dépôt distant (remote), vous pouvez partager votre projet et plusieurs
personnes peuvent y participer, il est indispensable donc pour un travail en
équipe.
Créer un projet local / Créer un projet distant
git init
git init est la commande pour transformer un dossier en dépôt.
Cela crée un dossier caché (.git) qui contiendra toutes les informations relatives
au versionning dans le dossier que l’on veut transformer en dépôt.
Vous pouvez utiliser GitHub pour créer des dépôts distants publics ou privés
(protégés).
GitHub (qui a été racheté par Microsoft) est un interface web qui facilite l’usage de
Git. GitLab est une alternative à GitHub.
La version gratuite de GitHub est largement suffisante et très populaire.
Récupérer un projet distant
git clone
git clone chemin_du_projet votre_dossier est la commande pour récupérer un
projet depuis un remote.
Cela récupère les fichiers disponible, et transforme le dossier en repo local depuis
lequel vous pourrez faire des modifications sur le projet et les exporter.
Exemple :
git clone https://github.com/XXXX/monpremierprojet.git ./work/TPgit/
Staging
Pour que votre code soit pris en compte dans un dépôt il doit être indexé. On
appelle ça le staging.
Pour ajouter un fichier dans la liste des fichiers indexés, on utilise la commande :
git add monfichier
Si la commande s’est bien déroulé, on peut vérifier avec la commande git status :
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: monfichier
Commit
Pour que votre code soit enregistrer dans un dépôt il doit être “commité”. On
appelle cette action le commit.
Pour enregistrer un fichier dans votre dépôt, on utilise la commande :
git commit
Cette commande ouvre un éditeur pour entrer un commentaire à votre commit.
Ces commentaires sont indispensables pour vous ou votre équipe, ils renseignent
sur ce que vous avez déposé dans le projet.
Il existe une commande pour renseigner directement un commentaire :
git commit -m “mon message”
Push, pull et checkout
Pour déposer votre projet sur un dépôt distant sur votre dépôt local, il faut utiliser :
git push
Pour récupérer la dernière version de votre projet sur un dépôt distant vers un
dépôt local :
git pull
Pour travailler sur la dernière version de votre projet sur un dépôt local vers votre
dossier de travail :
git checkout
Git workflow
Répertoire de Pris en compte Dépôt local Dépôt distant
travail (staged) (repository) (remote)
git clone
git add
git commit
git push
git pull
git checkout
Votre PC Un serveur
Questions : Git
1- Qu’est-ce qu’un contrôleur de version ?
2- Qu’est-ce qu’un repo ?
3- Est-ce que je peux récupérer le repo d’un ami ?
4- Quelle commande indexe mes fichiers dans un repo ?
5- Quelle commande récupère un projet d’un remote ?
TP : Hello World sur git
Créer un projet Java avec git
- Créer un nouveau projet java « Hello World » et le compiler
- Transformer le dossier du projet en repo git en ajoutant les informations
nécessaires
- Ajouter les fichiers qui vous semblent intéressant à garder et mettre en
gitignore ceux qui ne le sont pas
- Faites un commit avec message significatif
- Modifier le programme pour qu’il demande le nom et le prénom et fasse un
message de bonjour
- Committer le travail
Les branches
Une branche est une suite de commits.
Vous pouvez avoir plusieurs sur un projet. Une branche principale (branche
master), une branche pour vos tests, une branche pour développer une nouvelle
fonctionnalité, une branche pour chaque personne de l’équipe…
Pour connaître la branche sur laquelle vous travaillez : git branch
Pour créer une branche : git branch maBranche
Pour changer de branche : git checkout maBranche
Les “merges”
Vous avez en équipe travaillé sur un projet. Chaque membre de l’équipe à
développé une fonctionnalité du projet, chacun dans son fichier .java, et chaque
membre avait sa propre branche.
Il est temps de réintégrer tout ce travail au sein d’une même branche pour rendre
le projet complet.
Pour cela, on réalise une opération de merge.
git merge mabranche
Installer Git
Clique sur ce lien si tu n’as pas peur de devenir un développeur :
https://git-scm.com/downloads
Télécharge et installe Git selon ton OS.
Puis utilise les commandes :
git config --global user.name=“mon_user_name“
git config --global user.email "mon_mail"
Ces commandes sont indispensables et vont permettre de t’identifier pendant tes
commits.