Seb-Info

Cours 1/3 : Introduction à Git 

Cours 1/3 : Introduction à Git 

Première Partie :

Introduction à Git

GitIntroduction1BTSSIO

Lien du PDF

Git est un système de gestion de versions distribué.
Il permet de suivre l’historique des fichiers d’un projet, de collaborer à plusieurs et de revenir à un état antérieur si besoin.


Pourquoi utiliser Git ?

  • Historique : on peut retrouver toutes les versions passées.
  • Travail collaboratif : plusieurs personnes modifient le projet en parallèle.
  • Sécurité : on peut annuler un changement problématique.
  • Branches : tester des idées sans casser le code principal.
  • Open Source : très utilisé dans les projets publics (GitHub, GitLab…).

Concepts de base

Dépôt (Repository)

Le dossier où Git enregistre tout : fichiers, historique, branches…
Un dépôt peut être local (sur votre PC) ou distant (GitHub, GitLab…).

Commit

Un commit = un instantané du projet avec un message décrivant la modification.

Branch (Branche)

Permet de travailler sur une fonctionnalité sans toucher au code principal (main ou master).

Merge (Fusion)

Assembler deux branches. Exemple : intégrer une nouvelle fonctionnalité dans main.

⬆️ Push / ⬇️ Pull

  • Push : envoyer vos commits vers le dépôt distant.
  • Pull : récupérer les commits faits par les autres.

Clone

Copier un dépôt distant pour l’avoir en local.

Pull Request / Merge Request

Pull Request (PR) (GitHub) ou Merge Request (MR) (GitLab) = demander à intégrer son travail dans la branche principale.
Permet de relire le code avant la fusion.

Conflit

Arrive si deux personnes modifient la même ligne dans deux branches différentes.
Git demande de choisir quelle version garder.

.gitignore

Fichier qui liste ce que Git ne doit pas suivre (ex : fichiers temporaires, mots de passe, dossiers node_modules).

Tag

Marque un commit important (ex : v1.0).


Quelques commandes Git essentielles

# Initialiser un dépôt
git init

# Cloner un dépôt distant
git clone URL

# Vérifier l'état des fichiers
git status

# Ajouter un fichier pour le prochain commit
git add monfichier.php

# Créer un commit
git commit -m "Message descriptif"

# Envoyer les commits vers le dépôt distant
git push

# Récupérer les changements depuis le dépôt distant
git pull

# Créer une nouvelle branche
git branch nouvelle_fonction

# Changer de branche
git checkout nouvelle_fonction

# Fusionner une branche dans la branche actuelle
git merge nouvelle_fonction

Bonnes pratiques

  • 💬 Messages de commit clairs : décrivez ce que vous avez fait.
  • 🌿 Une branche par fonctionnalité : évite les conflits.
  • 🔄 Pull souvent : restez à jour avec vos collègues.
  • Relire avant de fusionner (Pull/Merge Request).
  • 🛑 Utilisez .gitignore pour éviter de partager des fichiers inutiles ou sensibles.

Vocabulaire GIT

Repository (Dépôt)

Le dépôt est le dossier où Git stocke tout le projet : fichiers, historique des changements, branches…
On peut avoir un dépôt local (sur son PC) et un dépôt distant (sur GitHub, GitLab…) pour collaborer.

Commit

Un commit est comme une photo du projet à un instant donné.
On écrit un message (ex. : “Ajout page de connexion”) pour décrire ce qu’on a fait.

Branche (Branch)

Une branche est une version parallèle du projet où l’on développe une nouvelle fonctionnalité sans casser la branche principale.
Exemple : main (code stable) et nouvelle-fonction.

HEAD

HEAD indique où vous travaillez (sur quelle branche ou quel commit vous êtes actuellement).

Push

Push = envoyer vos commits du PC vers le dépôt distant.
C’est comme un upload pour partager votre travail.

Pull

Pull = récupérer les modifications faites par les autres depuis le dépôt distant vers votre PC.
C’est comme un download pour se mettre à jour.

Merge (Fusion)

Merge = assembler deux branches pour combiner leurs changements.
Exemple : on fusionne nouvelle-fonction dans main une fois la fonctionnalité terminée.

Pull Request (PR)

Sur GitHub (ou Bitbucket), une Pull Request sert à demander la fusion d’une branche dans la branche principale.
Elle permet de présenter le travail et demander une relecture (code review).

Merge Request (MR)

Sur GitLab, c’est exactement la même chose qu’une Pull Request mais on l’appelle Merge Request.

Conflit

Un conflit arrive quand deux personnes modifient la même ligne dans deux branches différentes.
Git demande alors de choisir quelle version garder.

.gitignore

Fichier spécial qui indique les fichiers ou dossiers que Git doit ignorer (ex. : mots de passe, fichiers temporaires, dossiers node_modules).

Tag

Un tag sert à marquer un commit important (ex. : v1.0) pour repérer facilement une version publiée.


💡 Résumé ultra-simple

  • Commit = sauvegarde + message
  • Branch = nouvelle piste de travail
  • Push = envoyer | Pull = récupérer
  • PR / MR = demander la fusion sur le dépôt distant
  • Merge = assembler deux branches

 

 

TP N°1 – Premiers pas avec Git

🎯 Objectifs

  • Savoir initialiser un dépôt Git
  • Comprendre et faire des commits
  • Créer et fusionner des branches
  • Gérer un dépôt distant sur GitHub ou GitLab
  • Découvrir les Pull Request / Merge Request
  • Utiliser un fichier .gitignore

Préparation

  1. Vérifiez que Git est installé :
    git --version
  2. Configurez votre identité :
    git config --global user.name "Votre Nom"
    git config --global user.email "votre.email@exemple.com"

Créer un dépôt local

  1. Créez un dossier pour le projet :
    mkdir mon-premier-git
    cd mon-premier-git
  2. Initialisez Git :
    git init
  3. Créez un fichier README.md :
    # Mon premier projet Git
    Ceci est mon premier test avec Git 🚀
  4. Vérifiez l’état du dépôt :
    git status
  5. Ajoutez le fichier à l’index :
    git add README.md
  6. Créez votre premier commit :
    git commit -m "Ajout du README initial"

Créer une branche et tester

  1. Créez une nouvelle branche :
    git branch fonctionnalite-accueil
  2. Changez de branche :
    git checkout fonctionnalite-accueil
  3. Ajoutez un fichier index.html :
    <!DOCTYPE html>
    <html>
    <head><title>Accueil</title></head>
    <body>
        <h1>Bienvenue sur mon projet Git !</h1>
    </body>
    </html>
  4. Validez vos changements :
    git add index.html
    git commit -m "Ajout de la page d'accueil"
  5. Revenez sur la branche principale et fusionnez :
    git checkout main
    git merge fonctionnalite-accueil

Ignorer des fichiers inutiles

  1. Créez un fichier notes.txt (à ne pas versionner).
  2. Créez un fichier .gitignore :
    notes.txt
  3. Vérifiez avec git status que notes.txt est ignoré.

Utiliser un dépôt distant

  1. Créez un dépôt vide sur GitHub ou GitLab (nom : mon-premier-git).
  2. Liez votre dépôt local :
    git remote add origin https://github.com/<votre-user>/mon-premier-git.git
  3. Envoyez votre branche principale :
    git push -u origin main

Créer une Pull Request / Merge Request

  1. Créez une nouvelle branche :
    git checkout -b ajout-footer
  2. Modifiez index.html :
    <footer>Site BTS SIO</footer>
  3. Validez et poussez :
    git add index.html
    git commit -m "Ajout d'un footer"
    git push origin ajout-footer
  4. Sur GitHub/GitLab : cliquez sur New Pull Request ou New Merge Request pour demander la fusion vers main.
  5. Validez (merge) puis récupérez en local :
    git checkout main
    git pull

Simuler un conflit

  1. Sur main, modifiez le titre de index.html :
    <h1>Bienvenue sur mon super projet Git !</h1>
    git commit -am "Mise à jour du titre sur main"
  2. Sur la branche ajout-footer, modifiez la même ligne :
    <h1>Bienvenue sur le projet Git de la classe</h1>
    git commit -am "Titre personnalisé sur ajout-footer"
    git checkout main
    git merge ajout-footer
  3. Git signale un conflit : ouvrez index.html, choisissez la bonne version, puis validez :
    git add index.html
    git commit -m "Résolution de conflit sur le titre"

Compétences mises en pratique

  • Initialiser un dépôt (git init)
  • Suivre des fichiers (add, commit, status)
  • Utiliser les branches (branch, checkout)
  • Fusionner (merge)
  • Gérer un dépôt distant (remote, push, pull)
  • Créer une Pull Request / Merge Request
  • Utiliser .gitignore
  • Résoudre un conflit

 

Ce contenu est réservé aux membres du site. Si vous êtes un utilisateur existant, veuillez vous connecter. Les nouveaux utilisateurs peuvent s'inscrire ci-dessous.

Connexion pour les utilisateurs enregistrés
   
Nouvel utilisateur ?
*Champ requis
Powered by WP-Members