Intro à git
Romain Tavenard
Présentation de git
- Système de gestion de versions
- Pensé pour être distribué
- Développé à la base pour gérer la codebase du noyau linux
Pourquoi utiliser git ?
- Tous types de fichiers
- Code (quel que soit le langage)
- Données (attention aux volumes)
- Orienté fichiers texte (basé
diff)
- Gestion de versions
- Revenir en arrière (bourde)
- Garder trace de versions intermédiaires (jalons)
- Sauvegarde
- Services en ligne : GitHub, GitLab, …
- Plusieurs dépôts pour un même projet
Les dépôts
- 1 dépôt par machine
- pas de dépôt primaire / secondaire
- en pratique il y a souvent un dépôt de référence
- exemple : dépôt GitHub, GitLab, etc.
- habituellement appelé
origin
- Scénario 1
- un dépôt local pour gestion de versions sans sauvegarde
- un dépôt local + dépôt GitHub pour sauvegarde pérenne
Utilisation de git
Scénario 1
- Gestion de versions et sauvegarde
- Opérations nécessaires
- Initialiser un projet
git
- Lister les fichiers suivis
- Créer un point de sauvegarde local
- Synchroniser le contenu des différents dépôts d’un même projet
Opérations git de base
Interagir avec un dépôt distant
- 2 cas de figure
- On a débuté le développement en local puis on veut sauvegarder sur GitHub:
git init + git remote add
- On récupère du code disponible sur GitHub:
git clone (pas besoin d’ajouter le remote dans ce cas)
git init
Initialiser un dépôt git dans le dossier courant :
git remote add
- Ajouter un dépôt (=une copie) distant
git remote add origin https://URL_DU_REPO_DISTANT.git
- Ici le dépôt se voit attribuer le nom
origin
- Convention standard, mais pas d’obligation dans le nommage
git clone
Cloner un dépôt distant :
git clone http://url_depot_distant.git
git add
- Ajouter un ou plusieurs fichiers à la liste des fichiers à suivre dans le dépôt :
git add mon_fichier.ext *.txt autre_truc.md src/
git commit
- Créer un commit (point de sauvegarde) avec les dernières modifications du/des fichiers suivis :
git commit nom_du_fichier -a -m "Message associé au commit, décrivant son contenu"
git push
origin : nom du dépôt distant
main : nom de la branche à envoyer
git pull
origin : nom du dépôt distant
main : nom de la branche à récupérer
Pour savoir où on en est
- Voir l’état actuel du dépôt local
- Voir un historique des commits disponibles dans le dépôt local
.gitignore (1/2)
- Permet d’ignorer certains fichiers
- Fichier ignoré = jamais inclus dans un commit
- Fichiers à ignorer
- Fichiers temporaires
- Fichiers générés par exécution d’un script
- Fichiers contenant des identifiants (credentials)
.gitignore (2/2)
- Structure du fichier
.gitignore
poly.aux # Ignorer un fichier unique
*.bbl # Ignorer tous les fichiers correspondant au pattern
build/ # Ignorer un dossier et tout ce qu'il contient
Voyage dans le temps : retour au dernier commit
- Pour annuler tous les changements depuis le dernier commit :
git restore . # `.` = dossier courant
- Pour annuler les changements sur un fichier en particulier :
git restore <NOM_DU_FICHIER>
Voyage dans le temps : retour à un autre commit
Pour revenir au commit <COMMIT_ID> :
git revert --no-edit <COMMIT_ID>..HEAD
Pour connaître le <COMMIT_ID> :