Profitez de -40 % sur tous nos abonnements avec le code EAZY40

Jour(s)

:

Heure(s)

:

Minute(s)

:

Seconde(s)

Profitez-en maintenant
  • Eazytraining
    • Formateurs
    • Alumni
    • Podcast
    • Environnement de Labs
    • SAV & Support
    • FAQ
  • E-Learning
    • Automatisation
    • Certifications
    • Cloud
    • Développement informatique
    • Développement personnel
    • DevOps
    • Gitops
    • data
    • Management
    • Microservices et orchestration
    • Réseau et sécurité
    • Système
    • Virtualisation
  • Bootcamp
    • Bootcamp DevOps
    • Bootcamp Devops USA
    • Bootcamp Certification Devops
    • Bootcamp Data Analyst
    • Bootcamp AWS Cloud Engineer
    • Bootcamp Platform Engineer
    • BOOTCAMP WEEK
  • Parcours
    • Parcours DevOps
    • Parcours Cloud
    • Parcours Testeur Logiciel
    • Parcours Data analyst
    • Parcours platform engineer Kubernetes
  • Coaching
  • Adhésion
    • Abonnement Gratuit
    • Abonnement Mensuel
    • Abonnement Annuel
  • Blog
  • Atelier gratuit
  • Contact
  • Connexion
  • Accueil
  • Catalogue de cours
  • technologies numériques
  • devops

Introduction à GIT

Détails

  • 9 Sections
  • 60 Lessons
  • Durée de vie
Expand all sectionsCollapse all sections
  • Module 00 : Présentation de la formation
    Apprendre Git : Version Control et Collaboration avec GitHub | EazyTraining

    Apprendre Git : Version Control et Collaboration avec GitHub

    Cette leçon fait partie des formations proposées sur EazyTraining. Elle vous permet de comprendre les bases du version control avec Git, un outil indispensable dans les projets de développement logiciel et DevOps.

    Description de la leçon

    Cette séquence vous plonge dans l’univers du version control en vous présentant les concepts-clés et les commandes essentielles de Git. Vous découvrirez comment initialiser un dépôt, suivre les modifications de votre code, naviguer dans l’historique, travailler avec des branches et collaborer efficacement grâce à un serveur Git et GitHub.

    Pour approfondir vos compétences techniques, vous pouvez également consulter l’ensemble des cours disponibles sur la plateforme.

    Objectifs pédagogiques

    • Comprendre la nécessité et les avantages du versioning
    • Appréhender le modèle distribué de Git comparé aux autres systèmes de gestion de versions
    • Maîtriser les commandes fondamentales : init, clone, add, commit, status, log
    • Créer et gérer des branches : branch, checkout, merge, rebase
    • Configurer et utiliser un serveur Git local ou distant
    • Mettre en place un workflow collaboratif avec GitHub : forking, pull requests et gestion des issues

    Contexte

    Avant de vous lancer dans l’automatisation avec des outils comme Ansible, il est indispensable de maîtriser le version control. Git est aujourd’hui l’outil de référence dans l’industrie pour suivre l’évolution d’un projet, collaborer efficacement en équipe et conserver une traçabilité complète du code.

    Si vous souhaitez aller plus loin et pratiquer avec des projets concrets, découvrez également les bootcamps DevOps et Cloud.

    Consignes pratiques

    Installation

    Vérifiez que Git est installé sur votre machine :

    git --version

    Sinon, installez Git selon votre système d’exploitation.

    Initialisation et premiers commits

    
    mkdir mon-projet
    cd mon-projet
    git init
    touch README.md
    git add README.md
    git commit -m "First commit"
    

    Exploration de l’historique

    
    git tag v0.1
    git log --oneline --graph
    

    Gestion des branches

    
    git branch feature-x
    git checkout feature-x
    git commit -m "Ajout nouvelle fonctionnalité"
    git checkout main
    git merge feature-x
    

    Serveur Git local

    
    mkdir ~/git-server
    cd ~/git-server
    git init --bare project.git
    

    Vous pouvez ensuite pousser votre projet local vers ce serveur.

    Collaboration avec GitHub

    
    git remote add origin https://github.com/user/project.git
    git push -u origin main
    

    Travaillez ensuite avec des branches de fonctionnalités et créez des Pull Requests pour intégrer les changements.

    Bonnes pratiques Git

    • Rédiger des messages de commit clairs et descriptifs
    • Utiliser des branches pour chaque fonctionnalité
    • Apprendre à gérer les conflits avec merge et rebase
    • Maintenir un historique propre et lisible

    Résumé

    Git offre un contrôle total sur l’évolution de votre code :

    • Init et commit pour enregistrer des versions du projet
    • Branching pour développer plusieurs fonctionnalités en parallèle
    • Merging et rebasing pour intégrer les modifications sans perdre l’historique
    • Serveurs Git et GitHub pour collaborer avec d’autres développeurs

    Ces compétences sont indispensables pour tout projet DevOps et seront particulièrement utiles pour vos futurs développements avec Ansible.

    Pour continuer votre apprentissage, explorez également nos offres d’abonnement.

    6
    • 1.1
      Plan de formation et objectifs
      2 Minutes
    • 1.2
      Présentation du formateur
      2 Minutes
    • 1.3
      AJUSTER LA QUALITE DE LA VIDEO EN FONCTION DE VOTRE DEBIT INTERNET
      2 Minutes
    • 1.4
      Support de cours
    • 1.5
      Restons connectés
    • 1.6
      GET READY
      1 Minute
  • Module 01 : Introduction au versioning
    6
    • 2.1
      Introduction au versioning
      7 Minutes
    • 2.2
      TP-0 : Code d’accès de la plateforme EAZYTraining
    • 2.3
      TP-0 : découverte de la plateforme de TP
      7 Minutes
    • 2.4
      TP-1 : installation et configuration de git
      1 Minute
    • 2.5
      TP-1 : [correction] installation git
      4 Minutes
    • 2.6
      TP-1 : [correction] configuration git
      3 Minutes
  • Module 02 : Les bases de GIT
    9
    • 3.1
      Les bases de GIT
      12 Minutes
    • 3.2
      TP-2 : code à récupérer
    • 3.3
      TP-2 : Les bases de GIT
      3 Minutes
    • 3.4
      TP-2 : [correction] initialisation du repo et premier commit – README
      6 Minutes
    • 3.5
      TP-2: [correction] gitignore
      2 Minutes
    • 3.6
      TP-2 : [correction] validation du gitignore
      2 Minutes
    • 3.7
      TP-2 : [correction] parcourir l’historique des commit
      2 Minutes
    • 3.8
      TP-2 : [correction] git tag
      2 Minutes
    • 3.9
      TP-2 : [correction] git alias
      1 Minute
  • Module 03 : Les branches GIT
    4
    • 4.1
      Les branches GIT
      11 Minutes
    • 4.2
      TP-3 : Les branches GIT
      2 Minutes
    • 4.3
      TP-3 : [correction] creation de branch et git merge
      4 Minutes
    • 4.4
      TP-3 : [correction] gestion des conflits
      7 Minutes
  • Module 04 : Serveur GIT
    4
    • 5.1
      Serveur GIT
      3 Minutes
    • 5.2
      TP-4 : Serveur GIT
      2 Minutes
    • 5.3
      TP-4 : [correction] installation de gitlab
      2 Minutes
    • 5.4
      TP-4 : [correction] connexion à gitlab
      3 Minutes
  • Module 05 : Travail collaboratif
    8
    • 6.1
      Travail collaboratif
      7 Minutes
    • 6.2
      TP-5 : Travail collaboratif
      2 Minutes
    • 6.3
      TP-5 : [correction] creation des utilisateurs sur gitlab
      3 Minutes
    • 6.4
      TP-5 : [correction] assignation des utilisateurs aux groupes
      3 Minutes
    • 6.5
      TP-5 : [correction] creation du projet sur gitlab
      3 Minutes
    • 6.6
      TP-5 : [correction] contribution du developpeur partie 1
      13 Minutes
    • 6.7
      TP-5 : [correction] contribution du developpeur partie 2
      10 Minutes
    • 6.8
      TP-5 : [correction] résumé et suppression de l’environnement de travail
      1 Minute
  • Module 06 : Github
    9
    • 7.1
      Github
      4 Minutes
    • 7.2
      TP-6 : Github
      1 Minute
    • 7.3
      TP-6 : [correction] contribution à un projet opensource
      12 Minutes
    • 7.4
      TP-6 : [correction] comment mettre à jour son repo forké
      2 Minutes
    • 7.5
      TP-6 : [correction] git fetch
      3 Minutes
    • 7.6
      TP-6 : [correction] git pull le mainstream et push sur l’origin
      2 Minutes
    • 7.7
      [NEW] github – telechargement de code distant en local via https et ssh
      10 Minutes
    • 7.8
      [NEW] github – push de code local sur un repos distant en ssh
      13 Minutes
    • 7.9
      [NEW] github – push de code local sur un repos distant en https
      15 Minutes
  • Module 07 : BONUS
    10
    • 8.1
      Git rebase
      3 Minutes
    • 8.2
      Git rebase – en pratique
      7 Minutes
    • 8.3
      Git cherry-pick
      2 Minutes
    • 8.4
      Git cherry-pick – en pratique
      6 Minutes
    • 8.5
      Git Stash
      3 Minutes
    • 8.6
      Git Stash – en pratique
      6 Minutes
    • 8.7
      Git Squash
      3 Minutes
    • 8.8
      Git Squash – en pratique
      5 Minutes
    • 8.9
      Git reset
      12 Minutes
    • 8.10
      Git reset – en pratique
      13 Minutes
  • Module 08 : Conclusion
    4
    • 9.1
      Restons connectés
    • 9.2
      Conclusion
      3 Minutes
    • 9.3
      Prochaine étape
    • 9.4
      YOU WIN
      1 Minute

Git rebase

https://www.eazytraining.fr/wp-content/uploads/2020/07/rebase-explicaiton.mp4






TP : Git rebase vs merge pour un historique linéaire


TP : Git rebase vs merge pour un historique linéaire

Description

Ce TP vous guide pour utiliser git rebase afin de rejouer vos commits sur la dernière version de main, nettoyer l’historique et préparer vos Pull Requests. Vous verrez la gestion des conflits, le rebase interactif (--squash, --reword, --fixup), et comment pousser de manière sécurisée avec --force-with-lease. Vous comparerez également les différences avec git merge.

Objectifs pédagogiques

  • Mettre une branche de travail à jour sur main via git rebase
  • Résoudre les conflits pendant un rebase
  • Utiliser le rebase interactif pour squasher et renommer des commits
  • Pousser en toute sécurité après réécriture (--force-with-lease)
  • Comprendre le choix entre merge et rebase dans un workflow collaboratif

Contexte

Dans un workflow de Pull Request, il est souvent préférable de garder un historique linéaire et propre. Le rebase permet de rejouer vos commits au-dessus de la dernière version de main et d’utiliser des outils comme git log pour inspecter l’historique avant publication.

Prérequis

  • Dépôt Git avec une branche feature (ex. feature/x)
  • Branche main à jour sur le dépôt distant (GitHub)

Étapes et commandes

A) Mettre votre branche à jour sur main

  1. git checkout feature/x
  2. git fetch origin
  3. git rebase origin/main
  4. Résolution des conflits : git status, éditez les fichiers, git add, git rebase --continue
  5. Autres commandes utiles : git rebase --skip, git rebase --abort
  6. Push sécurisé après rebase : git push --force-with-lease origin feature/x

B) Nettoyer l’historique (rebase interactif)

git rebase -i HEAD~5 pour les 5 derniers commits, puis :

  • pick : conserver le commit
  • squash / s : fusionner avec le précédent
  • fixup / f : fusionner sans message
  • reword / r : modifier le message
  • edit / e : modifier le contenu du commit

Finalisez avec git add, git commit --amend, puis git rebase --continue.

C) Workflow autosquash

Créer un commit correctif : git commit --fixup <SHA> et lancer git rebase -i --autosquash origin/main pour ranger automatiquement les commits fixup! ou squash!.

D) Comparatif rapide : merge vs rebase

  • merge : ajoute un commit de merge, historique non réécrit, simple à partager
  • rebase : historique linéaire, propre, à éviter sur branches partagées sans coordination

Dépannage rapide

  • Abandonner le rebase : git rebase --abort
  • Conflits répétés : rebase par petits lots (HEAD~3)
  • Refus de push après rebase : git push --force-with-lease
  • Rebase sur mauvaise base : git rebase origin/main

Résumé

Le rebase permet de mettre à jour votre branche sur main, résoudre les conflits, puis pousser avec --force-with-lease. Le rebase interactif aide à squasher et renommer les commits pour un historique propre. Préférez merge si la branche est déjà partagée et que vous ne pouvez pas réécrire l’historique.


4 Commentaires

  1. Spasmojo sur 14 juillet 2020 à 18 h 30 min

    Il y a quelque chose que je ne comprend pas :
    – j’ai essayé de faire un merge de feature1 depuis feature2, puis de merge feature2 vers master et je vois bien le commit de feature1 contrairement à ce qui est dit dans la vidéo. Par contre, ça m’a créé un nouveau commit « Merge branch ‘feature1’ into ‘feature2′ » en plus dans l’historique final.
    – et deuxièmement, pourquoi ne pas faire un git rebase de feature2 depuis master si ça garde un historique propre ? J’ai l’impression qu’il y a une histoire de « fast-forward » mais je ne comprends pas car votre historique semble propre même avec un merge …

    Connectez-vous pour répondre
    • Dirane Willy TAFEN sur 14 juillet 2020 à 18 h 51 min

      hello
      pour repondre à tes questions:
      1- en fait le merge normal crée un commit automatiquement de l’ensemble des modifications ce qui devrait faire perdre l’historique des modifications
      2- attention, le merge ne garde pas mon historique mais crée un merge pour toutes mes modificaitons, en réalité quand je fais le base pour que les commit de ma branches features soient exactement repris à identique (comme sur la branche feature 2) afin de savoir exactement ce qui s’est passé.

      En réalité le merge cache les commits faits sur le branche feature, dans certains cas c’est souhaitable mais dans d’autres cas on souhaite avoir l’historique.

      Regardes un peu cette PR : https://github.com/diranetafen/cursus-devops/pull/12
      Tu verras que la seule chose que s’a m’affiche c’est que le commit c’est la résultante d’un merge alors que plein de commits ont été fait par le contributeur qui ici est sami.
      Donc si j’avais voulu garder l’historique des ces modifications j’aurai fait un rebase mais dans mon cas comme je suis le mainteneur du code je m’en fou un peu et c’est le resultat final qui m’intéresse
      N’hésites pas si je n’ai pas été clair, merci pour tes questions

      Connectez-vous pour répondre
      • Spasmojo sur 15 juillet 2020 à 0 h 42 min

        En fait, ce que je comprend pas c’est que dans la vidéo vous dites que si on « merge » la branche « feature1 » dans « feature2 », alors le commit « add mobile phone in form » ne sera plus dans l’historique.
        -> Hors si je fais ce merge, je vois toujours ce commit « add mobile phone in form » dans mon historique suivi de mon commit de merge…
        -> Pourquoi ? il ne devrait pas y avoir que le commit de merge ?

        Du coup, je suis encore plus perdu entre git merge, git merge (avec fast-forward) et rebase.

        Connectez-vous pour répondre
        • Dirane Willy TAFEN sur 15 juillet 2020 à 0 h 57 min

          En fait on utilise que le merge et des fois le rebase
          vous avez une bonne doc ici qui explique le mécanisme
          https://www.google.com/url?sa=i&url=https%3A%2F%2Ffr.sawakinome.com%2Farticles%2Fsoftware%2Funassigned-2334.html&psig=AOvVaw0oGtZ1xqRREfYyJz6zF5nV&ust=1594853811138000&source=images&cd=vfe&ved=0CA0QjhxqFwoTCLCyzobtzeoCFQAAAAAdAAAAABAb

          Connectez-vous pour répondre

Poster le commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

[NEW] github – push de code local sur un repos distant en https
Préc.
Git rebase – en pratique
Suivant

Ils nous font confiance

Nos apprenants certifiés

certified Kubernetes ADministrator
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
certified Kubernetes Security Specialist
JE RECOMMANDE eazytraining
AWS Certifed Cloud Practionner
CKAD
kubernetes certifications with CKS
terraform associate certificate
scrum master
JE RECOMMANDE eazytraining
certification scrum master
certification scrum master
Scrum master
Scrum master
certification scrum master
certification scrum master
certification scrum master
certification scrum master
certification scrum master
certification scrum master
certification scrum master
certified Terraform assocaite

Nos certifications

Suivez-nous

  • Suivre
  • Suivre
  • Suivre
ADMIN

Protection des données

Mentions légales

Conditions générales de vente

Conditions générales d’utilisation

Formations

Bootcamp

Parcours DevOps

Coaching

Eazytraining

Formateurs

Alumni

Blog

FAQ

Contact 

Mon compte
Inscription

Connexion

Mon espace perso

Tel: +33 (0)7-56-84-63-72 / +237 696-970-312
Mail: contact@eazytraining.fr

Paiement sécurisé

EAZYTraining© | Marque de la société individuelle TAFEN Dirane Willy SIREN : 842428062 à l’adresse 39 Rue Fontquetin 42300 Roanne