Numérique et Sciences Informatiques • 1ère

Usage des outils de versionnement

Concepts fondamentaux
\( \text{Version} = \text{État du code} + \text{Métadonnées} + \text{Historique} \)
Définition d'une version
Exemple Git :
git init - Crée un dépôt
git add . - Prépare les fichiers
git commit -m "Message" - Sauvegarde
git log - Affiche l'historique
Outils de versionnement

Git - Système distribué :

  • Chaque développeur a une copie complète
  • Historique complet local
  • Travail hors-ligne possible
  • Branches et fusions avancées

Concurrents :

  • SVN - Centralisé, plus simple
  • Mercurial - Alternative à Git
  • Subversion - Ancien système
Avantages de Git
🔄
Historique complet
👥
Collaboration efficace
🛡️
Sécurité des données
⚡
Performance élevée
Commandes essentielles
Commande Fonction
git init Initialise un dépôt
git clone [url] Copie un dépôt distant
git add [fichier] Prépare des fichiers
git commit -m "[message]" Sauvegarde les modifications
git status Vérifie l'état
git log Affiche l'historique
git push Envoie les modifications
git pull Récupère les modifications
Bonnes pratiques
📝
Messages clairs
📁
Structure organisée
🔄
Synchronisation fréquente
🔒
Protection des branches
Flux de travail Git

Exemple de workflow

# 1. Initialiser le dépôt
git init

# 2. Configurer l'utilisateur
git config user.name "Alice Martin"
git config user.email "alice@example.com"

# 3. Créer des fichiers
echo "# Projet NSI" > README.md
echo "print('Hello World')" > main.py

# 4. Premier commit
git add .
git commit -m "Initialisation du projet"

Gestion des branches

# Créer une branche
git branch develop

# Passer à la branche
git checkout develop

# Créer et basculer en une commande
git checkout -b feature/nouvelle-fonction

# Fusionner la branche
git checkout main
git merge feature/nouvelle-fonction

# Supprimer la branche
git branch -d feature/nouvelle-fonction

Résolution de conflits

# Conflit dans fichier.py
<<<<<<< HEAD
def nouvelle_fonction():
    return "Nouvelle implémentation"
=======
def nouvelle_fonction():
    return "Ancienne implémentation"
>>>>>>> autre_branche

# Solution : choisir la bonne implémentation
def nouvelle_fonction():
    return "Meilleure implémentation"

# Puis :
git add fichier.py
git commit -m "Résolution du conflit"
Conseils pour maîtriser Git
🔄
Commits fréquents
📝
Messages descriptifs
🔍
Vérifier avant de pousser
🛡️
Protéger les branches critiques
📚
Apprendre les raccourcis
Documentation et communication Compétences méthodologiques