Introduction
à Git
Par Dirane TAFEN
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Présentation du formateur
• Dirane TAFEN (formateur et consultant DevOps)
• Capgemini
• Sogeti
• ATOS
• BULL
• AIRBUS
• ENEDIS
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Introduction au
versionning (1/4):
Local
• Revenir en arrière
• Avoir un historique de son travail
• Evolutivité de son code
• GNU RCS - 1982
Introduction au versionning (2/4):
Centralistion
• CVS, Subversion ou encore perforce
• Collaboration
• SPOF
Introduction au
versionning
(3/4):
Décentralisation
• Git, Mercurial ou Bazaar
• Copie Identique sur chaque machine
• Collaboration optimisée
Introduction au versionning (4/4): A
propos de Git
• BitKeeper
• Développé en 2005
• Multiplateforme
• Rapide
• Simple
• Robuste
• Distribué
TP-0: Découvrir la plateforme de TP
• Accès
• Labs
• Durée d’une session
• Données sensibles
• Agrandir la fenêtre du terminal
• Connexion ssh
• Installation de paquet
• Ouverture de port
TP-1: Installation de Git
• Installation de Git sur une machine linux
• Installation de Git sur Windows
• Vérifier que git est bien installé
• Configuration de git
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Les bases de GIT (1/6): Les
environnements de travail
Les bases de GIT (2/6): Création d’un
repo
Les bases de GIT (3/6): Etat des fichiers
Les bases de GIT (4/6): .gitignore
• Log files
• Build files
• Environment files
Les bases de GIT (5/6): Historique
• git log
• git log -p -2
• git log --pretty=oneline
• git log --graph
Les bases de GIT (6/6): Tagging
• Release
• Version
• Immuable
TP-2: Les bases de GIT
• Récupérez le dossier deploy-users dans les fichiers fournis avec les supports de cours
• Copiez le dossier dans votre environnement de travail et rendez-vous dans ce dossier
• Initialisez un repo et faites un commit après avoir mis du contenu dans le fichier [Link]
• Créez un fichier [Link] et modifies le fichier [Link], enfin entérinez la modification
en faisant un commit
• Créez un fichier gitignore afin de ne pas tracker les fichiers de log (.log) et commit(ez)
le changement
• Créez ensuite un fichier [Link] et verifiez bien que fichier n’est pas traqué
• Listez vos deux derniers commit
• Créez la release 1.0.0 à l’aide des tags
• Créez des deux alias pour que “git st = git status” et “git br = git branch”
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Les branches • Orientation
GIT (1/5): • Isolation
Définition
Les branches GIT (2/5): Merge
Les branches GIT (3/5): Merge Conflict
Les branches GIT (4/5): Rebase
Les branches GIT (5/5): Remote branch
TP-3: Les branches GIT
• Rendez-vous dans votre dossier deploy-user
• Créez un branche update_default_value dans laquelle vous allez modifiez [Link] pour mettre
toto comme firstname et titi comme lastname, commit(ez) le changement
• Mergez la branche update_default_value (supprimez la après le merge) avec votre branche master
• Créez une branche password_linux dans laquelle vous allez modifier le message de demande de mot de
passe (dans linux_users.sh), commit(ez) le changement
• Déplacez-vous sur la branche master et modifies le message de demande de mot de passe (dans
linux_users.sh), commit(ez) le changement
• Tentez de merger la branche master avec password_linux, que remarquez-vous ? Il y a un conflit
• Réglez le conflit et commit(ez) la modification finale
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Serveur Git: Explication
• Centralisation
• Collaboration
• On-premise (gitlab-
ce, bitbucket …) ou
Cloud (github, gitlab
…)
• Backup
• Gestion d’accès
TP-4: Mise en place de gitlab
• Accédez à la plateforme de labs eazytraining [Link]
• Créez une instance
• Git clonez le projet suivant: [Link]
[Link]
• Rendez-vous dans le dossier docker-gitlab et lancez la
commande docker-compose up –d
• Connectez-vous en ouvrant le port 10080
• Reinitialisez le mot de passe du compte root
• Découvrez l’interface de gitlab
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Travail collaboratif (1/4): Workflow
centralisé
Travail collaboratif (2/4):
Workflow Integration-
Manager
Travail collaboratif (3/4): Workflow
dictateur et lieutenants (Unix)
Travail collaboratif (4/4): Scénario
de collaboration
TP-5: Travail collaboratif
• Sur votre gitlab-ce créé précédemment, créez 3 comptes
(manager, dev1 et dev2)
• Créez un groupe de projet (nommé eazytraining)
• Rajoutez manager en tant que owner du groupe de projet, dev1 et
dev2 en tant que contributeur
• Créez un repo deploy-users
• Poussez votre code sur gitlab en tant que manager et testez le scénario
de collaboration abordé précédement
Plan
• Présentation du formateur
• Introduction au versioning
• Les bases de GIT
• Les Branches GIT
• Serveur Git
• Travail collaboratif
• Github
Github (1/3): Quelques chiffres
Github (2/3):
Plans
Github (3/3): Contribution à un projet
TP-6: Github
• Créez un compte github
• Suivez le workflow de contribution pour faire une PR au
repo [Link]
• Comme modification que vous apporterez, rajouter juste votre
prenom dans le fichier [Link]
Merci pour votre attention