SlideShare une entreprise Scribd logo
1  sur  88
Télécharger pour lire hors ligne
Git
Git est un système de contrôle de version.
Git vous aide à suivre les changements de code.
Git est utilisé pour collaborer sur du code.
Apprendre par des exemples
Dans ce cours, nous allons vous montrer des commandes Git comme celle-
ci :
Pour les nouveaux utilisateurs, l'utilisation de la vue terminal peut sembler
un peu compliquée. Ne vous inquiétez pas! Nous allons le garder très
simple, et apprendre de cette façon vous donne une bonne compréhension
du fonctionnement de Git.
Formateur Jaouad Assabbour
Dépôts Git et distants
Git et GitHub sont des choses différentes.
Dans ce tutoriel, vous comprendrez ce qu'est Git et comment l'utiliser sur
les plates-formes de référentiel distant, comme GitHub.
Qu'est-ce que Git ?
Git est un système de contrôle de version populaire. Il a été créé par Linus
Torvalds en 2005 et est maintenu par Junio Hamano depuis lors.
Il est utilisé pour :
• Modifications du code de suivi
• Suivre qui a apporté des modifications
• Codage collaboratif
Que fait Git ?
• Gérer des projets avec les référentiels
• Cloner un projet pour travailler sur une copie locale
• Contrôlez et suivez les modifications avec Staging et Committing
• Branchez et fusionnez pour permettre de travailler sur différentes
parties et versions d'un projet
• Tirez la dernière version du projet vers une copie locale
• Pousser les mises à jour locales vers le projet principal
Formateur Jaouad Assabbour
Travailler avec Git
• Initialiser Git sur un dossier, en en faisant un référentiel
• Git crée maintenant un dossier caché pour garder une trace des
modifications dans ce dossier
• Lorsqu'un fichier est modifié, ajouté ou supprimé, il est considéré
comme modifié
• Vous sélectionnez les fichiers modifiés que vous souhaitez mettre en
scène
• Les fichiers Staged sont Committed , ce qui invite Git à stocker un
instantané permanent des fichiers
• Git vous permet de voir l'historique complet de chaque commit.
• Vous pouvez revenir à n'importe quel commit précédent.
• Git ne stocke pas une copie séparée de chaque fichier dans chaque
commit, mais garde une trace des modifications apportées à chaque
commit !
Pourquoi Git ?
• Plus de 70% des développeurs utilisent Git !
• Les développeurs peuvent travailler ensemble de n'importe où dans le
monde.
• Les développeurs peuvent voir l'historique complet du projet.
Formateur Jaouad Assabbour
• Les développeurs peuvent revenir aux versions antérieures d'un
projet.
Qu'est-ce que GitHub ?
• Git n'est pas la même chose que GitHub.
• GitHub crée des outils qui utilisent Git.
• GitHub est le plus grand hôte de code source au monde et appartient
à Microsoft depuis 2018.
• Dans ce cours, nous allons nous concentrer sur l'utilisation de Git
avec GitHub.
Formateur Jaouad Assabbour
Installer Git
Vous pouvez télécharger Git gratuitement sur le site suivant :
https://www.git-scm.com/
Utilisation de Git avec la ligne de commande
Pour commencer à utiliser Git, nous allons d'abord ouvrir notre shell de
commande.
Pour Windows, vous pouvez utiliser Git bash, qui est inclus dans Git pour
Windows. Pour Mac et Linux, vous pouvez utiliser le terminal intégré.
La première chose que nous devons faire est de vérifier si Git est
correctement installé :
Si Git est installé, il devrait afficher quelque chose comme git version X.Y
Formateur Jaouad Assabbour
Configurer Git
Faites maintenant savoir à Git qui vous êtes. Ceci est important pour les
systèmes de contrôle de version, car chaque commit Git utilise ces
informations :
Remplacez le nom d'utilisateur et l'adresse e-mail par les vôtres. Vous
voudrez probablement également l'utiliser lors de votre inscription
ultérieure à GitHub.
Remarque : Utilisez global pour définir le nom d'utilisateur et
l'adresse e-mail pour chaque référentiel sur votre ordinateur.
Si vous souhaitez définir le nom d'utilisateur/e-mail uniquement pour le
référentiel actuel, vous pouvez supprimer global
Formateur Jaouad Assabbour
Création du dossier Git
Maintenant, créons un nouveau dossier pour notre projet :
mkdir créer un nouveau répertoire .
cd change le répertoire de travail courant .
Maintenant que nous sommes dans le bon répertoire. Nous pouvons
commencer par initialiser Git !
Remarque : Si vous avez déjà un dossier/répertoire que vous souhaitez
utiliser pour Git :
Accédez-y en ligne de commande ou ouvrez-le dans votre explorateur de
fichiers, cliquez avec le bouton droit de la souris et sélectionnez "Git Bash
ici"
Formateur Jaouad Assabbour
Initialiser Git
Une fois que vous avez navigué vers le bon dossier, vous pouvez initialiser
Git sur ce dossier :
Vous venez de créer votre premier référentiel Git !
Remarque : Git sait maintenant qu'il doit surveiller le dossier sur lequel
vous l'avez lancé.
Git crée un dossier caché pour garder une trace des modifications.
Formateur Jaouad Assabbour
Git Ajout de nouveaux fichiers
Vous venez de créer votre premier référentiel Git local. Mais c'est vide.
Alors ajoutons quelques fichiers ou créons un nouveau fichier à l'aide de
votre éditeur de texte préféré. En suite, enregistrez-le ou déplacez-le dans
le dossier que vous venez de créer.
Pour cet exemple, je vais utiliser un simple fichier HTML comme celui-ci :
Et enregistrez-le dans notre nouveau dossier en tant que index.html.
Revenons au terminal et listons les fichiers dans notre répertoire de travail
actuel :
ls listera les fichiers du répertoire. Nous pouvons voir que index.html c'est là.
Formateur Jaouad Assabbour
Ensuite, nous vérifions le Git status et voyons s'il fait partie de notre référentiel :
Maintenant, Git est au courant du fichier, mais ne l'a pas ajouté à notre
référentiel !
Les fichiers de votre dossier de dépôt Git peuvent être dans l'un des 2 états
suivants :
• Tracked - fichiers connus de Git et ajoutés au référentiel
• Untracked - fichiers qui se trouvent dans votre répertoire de
travail, mais qui ne sont pas ajoutés au référentiel
Lorsque vous ajoutez pour la première fois des fichiers à un référentiel
vide, ils sont tous Untracked. Pour que Git les Tracked, vous devez
les mettre en scène ou les ajouter à l'environnement de mise en scène.
Nous couvrirons l'environnement de mise en scène dans le chapitre
suivant.
Formateur Jaouad Assabbour
Git Environment
L'une des fonctions principales de Git est les concepts d'environnement de
staging et de commit.
Pendant que vous travaillez, vous pouvez ajouter, modifier et supprimer
des fichiers. Mais chaque fois que vous atteignez un jalon ou terminez une
partie du travail, vous devez ajouter les fichiers à un environnement de
staging.
Les fichiers préparés sont des fichiers prêts à être validés dans le
référentiel sur lequel vous travaillez. Vous en saurez plus prochainement
sur le commit.
Pour l'instant, nous avons fini de travailler avec index.html. Nous
pouvons donc l'ajouter à l'environnement de staging :
Le fichier doit être Staged . Vérifions l'état :
Maintenant, le fichier a été ajouté à l'environnement de staging.
Formateur Jaouad Assabbour
Git ajouter plus d'un fichier
Vous pouvez également organiser plusieurs fichiers à la fois. Ajoutons 2
autres fichiers à notre dossier de travail. Utilisez à nouveau l'éditeur de
texte.
Un README.md fichier décrivant le référentiel (recommandé pour tous
les référentiels).
Une feuille de style externe de base ( bluestyle.css) :
Formateur Jaouad Assabbour
Et mettez à jour index.html pour inclure la feuille de style :
Ajoutez maintenant tous les fichiers du répertoire actuel à l'environnement
de staging :
Formateur Jaouad Assabbour
L'utilisation –all à la place des noms de fichiers individuels entraînera
stage tous les fichiers de modifications (nouveaux, modifiés et
supprimés).
Maintenant, les 3 fichiers sont ajoutés à l'environnement de staging et nous
sommes prêts à faire notre premier fichier commit.
Remarque : La commande raccourcie pour git add –all est git
add -A
Formateur Jaouad Assabbour
Git Commit
Puisque nous avons terminé notre travail, nous sommes prêts à passer de
stage à commit pour notre repo.
L'ajout de commits permet de suivre nos progrès et nos changements au
fur et à mesure que nous travaillons. Git considère chaque commit point
de changement ou "point de sauvegarde". C'est un point du projet auquel
vous pouvez revenir si vous trouvez un bogue ou si vous souhaitez
apporter une modification.
Lorsque nous commit, nous devrions toujours inclure un message .
En ajoutant des messages clairs à chacun commit, il est facile pour vous
(et pour les autres) de voir ce qui a changé et quand.
La commit commande effectue une validation et ajoute un message.-m
"message"
L'environnement de mise en scène a été engagé dans notre référentiel, avec
le message :
"Première version de Hello World !"
Formateur Jaouad Assabbour
Git Commit sans étape
Parfois, lorsque vous apportez de petites modifications, l'utilisation de
l'environnement de staging semble être une perte de temps. Il est possible
de valider directement les modifications, en sautant l'environnement de
staging. L' -a option mettra automatiquement en scène chaque fichier
modifié et déjà suivi.
Ajoutons une petite mise à jour à index.html :
Et vérifiez l'état de notre référentiel. Mais cette fois, nous utiliserons
l'option --short pour voir les changements de manière plus compacte :
Formateur Jaouad Assabbour
Remarque : les indicateurs d'état courts sont :
• ?? - Fichiers Untracked
• A - Fichiers ajoutés à l'étape
• M - Fichiers modifiés
• D - Fichiers supprimés
Nous voyons que le fichier que nous attendions est modifié. Alors
engageons-le directement :
Avertissement : Ignorer l'environnement de transfert n'est généralement
pas recommandé.
Sauter l'étape de l'étape peut parfois vous amener à inclure des
modifications indésirables.
Git Commit Log
Pour afficher l'historique des commits d'un dépôt, vous pouvez utiliser la
commande log:
Formateur Jaouad Assabbour
Git Help
Si vous rencontrez des difficultés pour vous souvenir des commandes ou
des options des commandes, vous pouvez utiliser Git help.
Il existe plusieurs façons d'utiliser la commande help en ligne de
commande :
• git command --help Voir toutes les options disponibles pour
la commande spécifique
• git help -–all Voir toutes les commandes possibles
Formateur Jaouad Assabbour
Passons en revue les différentes commandes.
Git -help Voir les options d'une commande spécifique
Chaque fois que vous avez besoin d'aide pour vous souvenir de l'option
spécifique d'une commande, vous pouvez utiliser : git command -
help
Formateur Jaouad Assabbour
Formateur Jaouad Assabbour
Remarque : vous pouvez également utiliser à la
place --help de -help pour ouvrir la page de
manuel Git correspondante
Formateur Jaouad Assabbour
Git Branch
Travailler avec les branches Git
Dans Git, a branch est une nouvelle version/séparée du référentiel
principal.
Disons que vous avez un grand projet et que vous devez mettre à jour la
conception.
Comment cela fonctionnerait-il sans et avec Git :
Sans Git :
• Faites des copies de tous les fichiers pertinents pour ne pas impacter
la version live
• Commencez à travailler avec la conception et constatez que le code
dépend du code dans d'autres fichiers, qui doivent également être
modifiés !
• Faites également des copies des fichiers dépendants. S'assurer que
chaque dépendance de fichier fait référence au nom de fichier correct
• URGENCE! Il y a une erreur sans rapport ailleurs dans le projet qui
doit être corrigée dès que possible !
• Enregistrez tous vos fichiers en notant les noms des copies sur
lesquelles vous travailliez
• Travaillez sur l'erreur non liée et mettez à jour le code pour le
corriger
• Revenez à la conception et terminez le travail là-bas
• Copiez le code ou renommez les fichiers, de sorte que la conception
mise à jour soit sur la version en direct
• (2 semaines plus tard, vous réalisez que l'erreur non liée n'a pas été
corrigée dans la nouvelle version de conception car vous avez copié
les fichiers avant le correctif)
Formateur Jaouad Assabbour
Avec Git :
• Avec une nouvelle branche appelée new-design, éditez le code
directement sans impacter la branche principale
• URGENCE! Il y a une erreur sans rapport ailleurs dans le projet qui
doit être corrigée dès que possible !
• Créez une nouvelle branche à partir du projet principal appelée
small-error-fix
• Corrigez l'erreur non liée et fusionnez la branche small-error-fix avec
la branche principale
• Vous retournez à la branche new-design et y terminez le travail
• Fusionner la branche new-design avec main (être alerté du petit
correctif d'erreur qui vous manquait)
Les branches vous permettent de travailler sur différentes parties d'un
projet sans impact sur la branche principale.
Lorsque le travail est terminé, une branche peut être fusionnée avec le
projet principal.
Vous pouvez même basculer entre les branches et travailler sur différents
projets sans qu'ils n'interfèrent les uns avec les autres.
La création de branches dans Git est très légère et rapide !
Formateur Jaouad Assabbour
Nouvelle branche Git
Ajoutons quelques nouvelles fonctionnalités à notre page index.html.
Nous travaillons dans notre référentiel local et nous ne voulons pas
perturber ou éventuellement détruire le projet principal.
Nous créons donc une nouvelle branche:
Maintenant, nous avons créé une nouvelle branche nommé " hello-
world-images"
Confirmons que nous avons créé une nouvelle branche:
Nous pouvons voir la nouvelle branche avec le nom "hello-world-images",
mais le *côté master précise que nous sommes actuellement sur celle-
ci branch.
Checkout est la commande utilisée pour extraire un fichier branch.
Nous déplaçant du courant branch vers celui spécifié à la fin de la
commande :
Formateur Jaouad Assabbour
Nous avons maintenant déplacé notre espace de travail actuel de la
branche master vers la nouvelle branch
Ouvrez votre éditeur préféré et apportez quelques modifications.
Pour cet exemple, nous avons ajouté une image (img_hello_world.jpg) au
dossier de travail et une ligne de code dans le fichier index.html :
Nous avons apporté des modifications à un fichier et ajouté un nouveau
fichier dans le répertoire de travail (même répertoire que le main
branch).
Vérifiez maintenant l'état du courantbranch :
Formateur Jaouad Assabbour
Passons donc en revue ce qui se passe ici :
• Des modifications ont été apportées à notre fichier index.html, mais
le fichier n'est pas préparé pour commit
• img_hello_world.jpg n'est pas tracked
Nous devons donc ajouter les deux fichiers à l'environnement de staging
pour cela branch :
Utiliser –all à la place des noms de fichiers individuels mettra en scène
tous les fichiers modifiés (nouveaux, modifiés et supprimés).
Vérifiez status les branch:
Nous sommes satisfaits de nos changements. Nous allons donc les engager
dans branch:
Formateur Jaouad Assabbour
Nous avons maintenant une nouvelle branch, qui est différent du
branch Master.
Remarque : L'utilisation de l' -boption on checkout créera une
nouvelle branche et se déplacera vers elle si elle n'existe pas
Switching Between Branches
Voyons maintenant à quel point il est rapide et facile de travailler avec différentes
branches, et à quel point cela fonctionne.
Nous sommes actuellement sur la branche hello-world-images. Nous avons
ajouté une image à cette branche, listons donc les fichiers dans le répertoire courant :
Nous pouvons voir le nouveau fichier img_hello_world.jpg, et si
nous ouvrons le fichier html, nous pouvons voir que le code a été modifié.
Tout est comme il se doit.
Voyons maintenant ce qui se passe lorsque nous changeons de branche en
master
Formateur Jaouad Assabbour
La nouvelle image ne fait pas partie de cette branche. Listez à nouveau les
fichiers du répertoire courant :
img_hello_world.jpg n'est plus là ! Et si nous ouvrons le fichier
html, nous pouvons voir le code revenir à ce qu'il était avant la
modification.
Vous voyez à quel point il est facile de travailler avec des succursales ? Et
en quoi cela vous permet de travailler sur des choses différentes ?
Formateur Jaouad Assabbour
Emergency Branch
Imaginons maintenant que nous n'en ayons pas encore fini avec hello-
world-images, mais que nous devions corriger une erreur sur master.
Je ne veux pas jouer directement avec master, et je ne veux pas jouer avec
hello-world-images, puisque ce n'est pas encore fait.
Nous créons donc une nouvelle branche pour faire face à emergement :
Maintenant, nous avons créé une nouvelle branche à partir de master et y
avons changé. Nous pouvons corriger l'erreur en toute sécurité sans
déranger les autres branches.
Corrigeons notre erreur imaginaire :
Formateur Jaouad Assabbour
Nous avons apporté des modifications à ce fichier et nous devons
transférer ces modifications dans la branche master.
Vérifiez l'état :
mettez le fichier en commit et validez :
Nous avons maintenant un correctif prêt pour master et nous devons
fusionner les deux branches.
Formateur Jaouad Assabbour
Git Branch Merge
Fusionner les branches
Nous avons le emergency fix, alors fusionnons les branches master et
emergency-fix.
Tout d'abord, nous devons passer à la branche master :
Maintenant, nous fusionnons la branche actuelle (Master) avec le
emergency-fix :
Étant donné que la branche de correction d'urgence provenait directement
de master et qu'aucune autre modification n'avait été apportée à master
pendant que nous travaillions, Git considère cela comme une continuation
de master. Ainsi, il peut "avancer rapidement", en pointant simplement le
maître et le emergency-fix vers le même commit.
Comme le master et le emergency-fix sont essentiellement les mêmes
maintenant, nous pouvons supprimer le emergency-fix , car il n'est plus
nécessaire :
Formateur Jaouad Assabbour
Merge Conflict
Maintenant, nous pouvons passer à hello-world-images et continuer à
travailler. Ajoutez un autre fichier image (img_hello_git.jpg) et modifiez
index.html pour qu'il s'affiche
Maintenant, nous avons terminé notre travail ici et pouvons organiser et
valider pour cette branche :
Formateur Jaouad Assabbour
Nous voyons que index.html a été modifié dans les deux branches. Nous
sommes maintenant prêts à fusionner hello-world-images dans master.
Mais qu'adviendra-t-il des changements que nous avons récemment
apportés à master ?
La fusion a échoué, car il existe un conflit entre les versions de index.html.
Vérifions l'état :
Cela confirme qu'il y a un conflit dans index.html, mais les fichiers image
sont prêts et préparés pour être validés.
Formateur Jaouad Assabbour
Nous devons donc résoudre ce conflit. Ouvrez le fichier dans notre
éditeur :
Nous pouvons voir les différences entre les versions et les modifier comme
nous le souhaitons :
Formateur Jaouad Assabbour
Nous pouvons maintenant mettre en commit index.html et vérifier l'état :
Le conflit a été corrigé et nous pouvons utiliser commit pour conclure la
fusion :
Et supprimez la branche hello-world-images :
Vous avez maintenant une meilleure compréhension du fonctionnement
des branches et de la fusion. Il est temps de commencer à travailler avec
un référentiel distant !
Formateur Jaouad Assabbour
Git GitHub Premiers pas
Compte GitHub
Allez sur www.gitbub.com et créez un compte :
Remarque : N'oubliez pas d'utiliser la même adresse e-mail que celle que
vous avez utilisée dans la configuration Git.
Formateur Jaouad Assabbour
Créer un référentiel sur GitHub
Maintenant que vous avez créé un compte GitHub, connectez-vous et
créez un nouveau Repo :
Formateur Jaouad Assabbour
Et remplissez les détails pertinents:
Nous reviendrons sur les différentes options et ce qu'elles signifient plus
tard. Mais pour l'instant, choisissez Public (si vous voulez que le dépôt soit
visible pour tout le monde) ou Privé (si vous voulez choisir qui doit
pouvoir voir le dépôt). Dans tous les cas, vous pourrez choisir qui peut
contribuer au dépôt.
Cliquez ensuite sur "Créer un référentiel".
Formateur Jaouad Assabbour
Pousser le référentiel local vers GitHub
Puisque nous avons déjà mis en place un dépôt Git local, nous allons
push vers GitHub :
Copiez l'URL ou cliquez sur le presse-papiers marqué dans l'image ci-
dessus.
Collez-y maintenant la commande suivante :
git remote add origin URL spécifie que vous ajoutez un
référentiel distant, avec le spécifié URL, en tant que origin à votre
référentiel Git local.
Formateur Jaouad Assabbour
Nous allons maintenant pousser notre branche principale vers l'url d'origine et
la définir comme branche distante par défaut :
Remarque : étant donné que c'est la première fois que vous vous
connectez à GitHub, vous recevrez une sorte de notification vous
permettant d'authentifier cette connexion.
Formateur Jaouad Assabbour
Maintenant, retournez dans GitHub et voyez que le référentiel a été mis à
jour :
Formateur Jaouad Assabbour
Modifier le code dans GitHub
En plus d'être un hébergeur de contenu Git, GitHub dispose d'un très bon
éditeur de code.
Essayons de modifier le fichier README.md dans GitHub. Cliquez
simplement sur le bouton Modifier :
Formateur Jaouad Assabbour
Ajoutez quelques modifications au code, puis commitles modifications.
Pour l'instant, nous allons "Commiter directement dans la branche master".
N'oubliez pas d'ajouter une description pour commit:
C'est ainsi que vous modifiez le code directement dans GitHub !
Formateur Jaouad Assabbour
Git Pull de GitHub
Tirer pour se tenir au courant des changements
Lorsque vous travaillez en équipe sur un projet, il est important que tout le
monde reste à jour.
Chaque fois que vous commencez à travailler sur un projet, vous devriez
obtenir les modifications les plus récentes sur votre copie locale.
Avec Git, vous pouvez le faire avec pull.
Pull est une combinaison de 2 commandes différentes :
• fetch
• merge
Examinons de plus près le fonctionnement fetch , merge et pull.
Formateur Jaouad Assabbour
Git Fetch
Fetch obtient tout l'historique des modifications d'une branche/dépôt
suivi.
Donc, sur votre Git local, faites des fetch mises à jour pour voir ce qui
a changé sur GitHub :
Maintenant que nous avons le récent changes, nous pouvons vérifier
notre status:
Formateur Jaouad Assabbour
Nous sommes en retard origin/master de un commit. Cela devrait
être la mise à jour README.md, mais permet de vérifier en consultant le
log:
Cela ressemble à ce que nous attendions, mais nous pouvons également
vérifier en montrant les différences notre local master et
origin/master:
Cela ressemble exactement à ce que nous attendions ! Maintenant, nous
pouvons en toute sécurité merge
Formateur Jaouad Assabbour
Git Merge
Merge combine la branche actuelle avec une branche
spécifiée.
Nous avons confirmé que les mises à jour sont comme prévu, et nous
pouvons fusionner notre branche actuelle ( master) avec
origin/master:
Vérifiez status à nouveau notre pour confirmer que
nous sommes à jour :
Là! Votre git local est à jour !
Formateur Jaouad Assabbour
Git-Pull
Mais que se passe-t-il si vous souhaitez
simplement mettre à jour votre référentiel local,
sans passer par toutes ces étapes ?
Pull est une combinaison de fetch et merge. Il est utilisé pour
extraire toutes les modifications d'un référentiel distant dans la branche sur
laquelle vous travaillez.
Apportez une autre modification au fichier Readme.md sur GitHub.
Formateur Jaouad Assabbour
Utilisez pull pour mettre à jour notre Git local :
C'est ainsi que vous maintenez votre Git local à
jour à partir d'un référentiel distant. Dans le
prochain chapitre, nous verrons de plus près
comment push fonctionne avec GitHub.
Formateur Jaouad Assabbour
Git Push to GitHub
Essayons d'apporter quelques modifications à notre
git local et de les pousser vers GitHub.
Validez les modifications :
Et vérifiez l'état :
Formateur Jaouad Assabbour
Poussez maintenant nos modifications vers notre
origine distante :
Accédez à GitHub et confirmez que le dépôt a un
nouveau commit :
Maintenant, nous allons commencer à travailler sur
les branches sur GitHub.
Formateur Jaouad Assabbour
Git GitHub Branch
Créer une nouvelle branche sur GitHub
Sur GitHub, accédez à votre référentiel et cliquez sur le bouton de branche
"master".
Là, vous pouvez créer une nouvelle branche. Tapez un nom descriptif et
cliquez sur Créer une branche
Formateur Jaouad Assabbour
Le branch devrait maintenant être créé et actif.
Vous pouvez confirmer sur quelle branche vous
travaillez en regardant le bouton de branche. Vous
voyez qu'il est maintenant écrit "squelette html"
au lieu de "main" ?
Formateur Jaouad Assabbour
Commencez à travailler sur un fichier existant
dans cette branche. Cliquez sur le fichier
index.html " " et commencez à éditer :
Formateur Jaouad Assabbour
Une fois que vous avez terminé de modifier le
fichier, vous pouvez cliquer sur l'onglet "Aperçu
des modifications" pour voir les modifications
apportées en surbrillance :
Formateur Jaouad Assabbour
Si vous êtes satisfait de la modification, ajoutez
un commentaire expliquant ce que vous avez fait,
puis cliquez sur Valider les modifications.
Vous avez maintenant une nouvelle branche sur GitHub, mis à jour
avec quelques changements !
Formateur Jaouad Assabbour
Git Pull Branch from GitHub
Continuez maintenant à travailler sur notre new
branchdans notre Git local.
Reprenons pull notre référentiel GitHub pour que notre code soit à
jour :
Maintenant, notre principal branch est à jour. Et
on peut voir qu'il y en a une nouvelle branch
disponible sur GitHub.
Faites une status vérification rapide :
Et confirmez quelles succursales nous avons et où nous travaillons en ce
moment :
Formateur Jaouad Assabbour
Donc, nous n'avons pas la nouvelle branche sur
notre Git local. Mais nous savons qu'il est
disponible sur GitHub. Nous pouvons donc utiliser
l' option -a pour voir toutes les branches locales
et distantes :
Remarque : branch -r concerne uniquement les
succursales distantes.
Nous voyons que la branche html-skeleton est
disponible à distance, mais pas sur notre git
local. Regardons ça:
Et vérifiez si tout est à jour :
Formateur Jaouad Assabbour
Quelles succursales avons-nous maintenant et d'où
travaillons-nous ?
Maintenant, ouvrez votre éditeur préféré et
confirmez que les modifications de la branche
GitHub ont été transférées.
C'est ainsi que vous tirez une branche GitHub vers votre Git local.
Formateur Jaouad Assabbour
Git Push Branch to GitHub
Essayons de créer une nouvelle branche locale et de la pousser vers
GitHub.
Commencez par créer une branche, comme nous l'avons fait
précédemment :
Et nous apportons quelques modifications au fichier README.md.
Ajoutez simplement une nouvelle ligne.
Alors maintenant, nous vérifions le status de la branche actuelle.
Nous voyons que README.md est modifié mais pas
ajouté à l'environnement de staging :
Formateur Jaouad Assabbour
Vérifiez status de la branche :
Nous sommes satisfaits de nos changements. Alors
nous allons commit au branch:
Maintenant push : branch, depuis notre référentiel
Git local, vers GitHub, où tout le monde peut voir
les modifications
Formateur Jaouad Assabbour
Allez sur GitHub et confirmez que le dépôt a un
nouveau branch:
Dans GitHub, nous pouvons maintenant voir les
modifications intégrer et les merge au branch
Master si nous l'approuvons.
Formateur Jaouad Assabbour
Si vous cliquez sur "Compare & pull request", vous
pouvez passer en revue les modifications apportées
et les nouveaux fichiers ajoutés :
Remarque : cette comparaison montre à la fois les
modifications depuis update-readme et html-skeletonparce que nous
avons créé la nouvelle branche FROM html-skeleton.
Formateur Jaouad Assabbour
Si les changements semblent bons, vous pouvez
continuer en créant un pull request:
Une demande d'extraction est la façon dont vous
proposez des modifications. Vous pouvez demander à
certains de revoir vos modifications ou d'extraire
votre contribution et de la fusionner dans leur
branche.
Formateur Jaouad Assabbour
Puisqu'il s'agit de votre propre référentiel, vous
pouvez vous merge même effectuer votre pull
request :
La demande d'extraction enregistrera les
modifications, ce qui signifie que vous pourrez
les parcourir plus tard pour comprendre les
modifications apportées.
Formateur Jaouad Assabbour
Le résultat devrait ressembler à ceci :
Formateur Jaouad Assabbour
Pour éviter que le dépôt ne devienne trop
compliqué, vous pouvez supprimer la branche
désormais inutilisée en cliquant sur "Supprimer la
branche".
Une fois que vous avez confirmé que les
modifications de la branche précédente ont été
incluses, supprimez-les également :
Formateur Jaouad Assabbour
Git GitHub Flow
Travailler avec le flux GitHub
Sur cette page, vous apprendrez comment tirer le meilleur parti de votre
travail avec GitHub.
Le flux GitHub est un flux de travail conçu pour bien fonctionner avec Git
et GitHub.
Il se concentre sur la ramification et permet aux équipes d'expérimenter
librement et de faire des déploiements régulièrement.
Le flux GitHub fonctionne comme ceci :
• Créer une nouvelle branche
• Apporter des modifications et ajouter des commits
• Ouvrir une demande d'extraction
• Examen
• Déployer
• Fusionner
Vous devriez déjà avoir une bonne compréhension de la façon dont cela
fonctionne à partir des chapitres précédents. Ce chapitre se concentre sur la
compréhension de la façon dont le flux vous permet de travailler
facilement ensemble.
Formateur Jaouad Assabbour
Créer une nouvelle branche
La création de branches est le concept clé de Git. Et cela fonctionne autour
de la règle selon laquelle la branche master est TOUJOURS déployable.
Cela signifie que si vous voulez essayer quelque chose de nouveau ou
expérimenter, vous créez une nouvelle branche ! La création de branches
vous offre un environnement dans lequel vous pouvez apporter des
modifications sans affecter la branche principale.
Lorsque votre nouvelle branche est prête, elle peut être examinée, discutée
et fusionnée avec la branche principale lorsqu'elle est prête.
Lorsque vous créez une nouvelle branche, vous voudrez (presque toujours)
la créer à partir de la branche master.
Remarque : Gardez à l'esprit que vous travaillez avec d'autres. Utiliser des noms
descriptifs pour les nouvelles branches, afin que chacun puisse comprendre ce qui se passe.
Formateur Jaouad Assabbour
Apporter des modifications et ajouter des commits
Une fois la nouvelle branche créée, il est temps de se mettre au travail.
Apportez des modifications en ajoutant, modifiant et supprimant des
fichiers. Chaque fois que vous atteignez un petit jalon, ajoutez les
modifications à votre branche par commit.
L'ajout de commits permet de suivre votre travail. Chaque commit doit
avoir un message expliquant ce qui a changé et pourquoi. Chaque commit
devient une partie de l'historique de la branche et un point auquel vous
pouvez revenir si nécessaire.
Remarque : les messages de validation sont très importants ! Faites savoir à tout le
monde ce qui a changé et pourquoi. Les messages et les commentaires vous
permettent, à vous et aux autres, de suivre plus facilement les modifications.
Formateur Jaouad Assabbour
Ouvrir une demande d'extraction (Pull Request)
Les demandes d'extraction sont un élément clé de GitHub. Une demande
d'extraction informe les personnes que vous avez des modifications prêtes
à être prises en compte ou révisées.
Vous pouvez demander à d'autres de revoir vos modifications ou d'extraire
votre contribution et de la fusionner dans leur branche.
Examen
Lorsqu'une demande d'extraction est effectuée, elle peut être examinée par
toute personne disposant d'un accès approprié à la branch. C'est là que se
produisent de bonnes discussions et un examen des changements.
Les Pull Requests sont conçues pour permettre aux gens de travailler
ensemble facilement et de produire de meilleurs résultats ensemble !
Si vous recevez des commentaires et que vous continuez à améliorer vos
modifications, vous pouvez pousser vos modifications avec de nouveaux
commits, ce qui rend possible d'autres révisions.
Remarque : GitHub affiche les nouveaux commits et les commentaires dans la "unified
Pull Request view".
Formateur Jaouad Assabbour
Déployer
Lorsque la demande d'extraction a été examinée et que tout semble bon, il
est temps de procéder aux tests finaux. GitHub vous permet de déployer à
partir d'une branche pour les tests finaux en production avant de fusionner
avec la branche principale.
En cas de problème, vous pouvez annuler les modifications en déployant à
nouveau la branche principale en production !
Remarque : les équipes disposent souvent d'environnements de test dédiés utilisés pour déployer
des branches.
Fusionner (merge)
Après des tests exhaustifs, vous pouvez fusionner le code dans la branche
master !
Les demandes d'extraction conservent des enregistrements des
modifications apportées à votre code, et si vous avez bien commenté et
nommé les modifications, vous pouvez revenir en arrière et comprendre
pourquoi les modifications et les décisions ont été prises.
Remarque : Vous pouvez ajouter des mots-clés à votre pull request pour faciliter la recherche !
Formateur Jaouad Assabbour
Git GitHub Fork
Ajouter au référentiel de quelqu'un.
Au cœur de Git se trouve la collaboration. Cependant, Git ne vous permet
pas d'ajouter du code au référentiel de quelqu'un d'autre sans droits d'accès.
Dans ces 3 prochains chapitres, nous vous montrerons comment copier un
référentiel, y apporter des modifications et suggérer que ces modifications
soient implémentées dans le référentiel d'origine.
A la fin de ces chapitres, vous aurez la possibilité d'ajouter un message sur
notre page publique GitHub : https://w3schools-
test.github.io/
Forker un référentiel
A fork est une copie d'un référentiel. Ceci est utile lorsque vous
souhaitez contribuer au projet de quelqu'un ou démarrer votre propre projet
basé sur le sien.
Fork n'est pas une commande dans Git, mais quelque chose offert dans
GitHub et d'autres hôtes de référentiel. Commençons par nous connecter à
GitHub et à fork notre référentiel:
https://github.com/w3schools-test/w3schools-test.github.io
Formateur Jaouad Assabbour
Nous avons maintenant notre propre copie de
w3schools-test.github.io:
Voyons maintenant comment nous ajoutons une copie locale de ceci avec
laquelle nous pouvons travailler.
Formateur Jaouad Assabbour
Clone a Fork from GitHub
Maintenant, nous avons notre propre fork, mais uniquement sur GitHub.
Nous voulons également un clone sur notre Git local pour continuer à
travailler dessus.
A clone est une copie complète d'un référentiel, y compris toute la
journalisation et les versions des fichiers.
Revenez au référentiel d' origine et cliquez sur le bouton vert "Code" pour
obtenir le URL à clone :
Ouvrez votre bash Git et clonele dépôt :
Formateur Jaouad Assabbour
Jetez un œil à votre système de fichiers et vous verrez un nouveau
répertoire nommé d'après le projet cloné :
Remarque : Pour spécifier un dossier spécifique vers lequel cloner, ajoutez le nom du dossier
après le référentiel URL, comme ceci : git clone https://github.com/w3schools-
test/w3schools-test.github.io.git myfolder
Naviguez jusqu'au nouveau répertoire, et cochez status:
Et vérifiez le log pour confirmer que nous avons les données complètes
du référentiel :
Nous avons maintenant une copie complète du référentiel d'origine.
Formateur Jaouad Assabbour
Configuration des Remotes
Fondamentalement, nous avons une copie complète d'un référentiel, auquel
origin nous ne sommes pas autorisés à apporter des modifications.
Voyons comment les remotes de ce Git est configuré :
Nous voyons que origin le dépôt " " d'origine est configuré
w3schools-test, nous souhaitons également ajouter nôtre fork.
Tout d'abord, nous rename l'original origin remote:
Ensuite, récupérez le URL nôtre fork :
Formateur Jaouad Assabbour
Et ajouter cela comme origin:
Remarque : selon les conventions de nommage de Git, il est recommandé de
nommer votre propre référentiel originet celui que vous avez créé upstream
Maintenant nous avons 2 remotes :
• origin le nôtre fork, où nous avons un accès en lecture et en
écriture
• upstream - l'original, où nous avons un accès en lecture seule
Nous allons maintenant apporter quelques modifications au code. Dans le
chapitre suivant, nous expliquerons comment nous suggérons ces
modifications au référentiel d'origine.
Formateur Jaouad Assabbour
Push Changes to Our GitHub Fork
Nous avons apporté de nombreuses modifications à notre Git local.
Maintenant, nous push les dirigeons vers notre GitHub fork:
commit les changements:
Allez sur GitHub, et nous voyons que le référentiel a un nouveau commit.
Et nous pouvons envoyer une demande d'extraction au référentiel d'origine
:
Formateur Jaouad Assabbour
Formateur Jaouad Assabbour
Cliquez dessus et créez une pull request :
N'oubliez pas d'ajouter une explication pour les administrateurs.
Formateur Jaouad Assabbour
La Pull Request est envoyée :
Formateur Jaouad Assabbour
Formateur Jaouad Assabbour
Approbation des Pull Requests
Désormais, tout membre disposant d'un accès peut voir la pull requests
lorsqu'il voit le référentiel d'origine :
Et ils peuvent voir les modifications proposées :
Formateur Jaouad Assabbour
Commentez les changements et merge:
Formateur Jaouad Assabbour
Confirmer :
Formateur Jaouad Assabbour
Formateur Jaouad Assabbour
Et les changements ont été merged a master:
Fin merci pour votre attention
Jaouad assabbour
Formateu web
Formateur Jaouad Assabbour

Contenu connexe

Tendances

Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Faycel Chaoua
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes LogicielsGhazouani Mahdi
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)ENSET, Université Hassan II Casablanca
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveurHouda TOUKABRI
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...ENSET, Université Hassan II Casablanca
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Faycel Chaoua
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support du cours : Programmation Web 2
Support du cours : Programmation Web 2Support du cours : Programmation Web 2
Support du cours : Programmation Web 2
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Cours développement côté serveur
Cours développement côté serveurCours développement côté serveur
Cours développement côté serveur
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
Mise en oeuvre des Frameworks de Machines et Deep Learning pour les Applicati...
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
React-cours.pdf
React-cours.pdfReact-cours.pdf
React-cours.pdf
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 

Similaire à git.pdf

Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfmouad55
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfSimpleLearn1
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdfbadrfathallah2
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHubThibault Vlacich
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...akramalidrissi1
 

Similaire à git.pdf (20)

Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Git
GitGit
Git
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
Devops - Git - VSTS
Devops - Git - VSTSDevops - Git - VSTS
Devops - Git - VSTS
 
VSTS Git
VSTS GitVSTS Git
VSTS Git
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 

Plus de Jaouad Assabbour (12)

Kubernetes (k8s).pdf
Kubernetes (k8s).pdfKubernetes (k8s).pdf
Kubernetes (k8s).pdf
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Ansible-cours .pdf
Ansible-cours .pdfAnsible-cours .pdf
Ansible-cours .pdf
 
test-formulaire-angular.pdf
test-formulaire-angular.pdftest-formulaire-angular.pdf
test-formulaire-angular.pdf
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdfJWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
 
js.pdf
js.pdfjs.pdf
js.pdf
 
ajax.pdf
ajax.pdfajax.pdf
ajax.pdf
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
nodejs.pdf
nodejs.pdfnodejs.pdf
nodejs.pdf
 
cours java complet-2.pdf
cours java complet-2.pdfcours java complet-2.pdf
cours java complet-2.pdf
 
SQL.pdf
SQL.pdfSQL.pdf
SQL.pdf
 

git.pdf

  • 1. Git Git est un système de contrôle de version. Git vous aide à suivre les changements de code. Git est utilisé pour collaborer sur du code. Apprendre par des exemples Dans ce cours, nous allons vous montrer des commandes Git comme celle- ci : Pour les nouveaux utilisateurs, l'utilisation de la vue terminal peut sembler un peu compliquée. Ne vous inquiétez pas! Nous allons le garder très simple, et apprendre de cette façon vous donne une bonne compréhension du fonctionnement de Git. Formateur Jaouad Assabbour
  • 2. Dépôts Git et distants Git et GitHub sont des choses différentes. Dans ce tutoriel, vous comprendrez ce qu'est Git et comment l'utiliser sur les plates-formes de référentiel distant, comme GitHub. Qu'est-ce que Git ? Git est un système de contrôle de version populaire. Il a été créé par Linus Torvalds en 2005 et est maintenu par Junio Hamano depuis lors. Il est utilisé pour : • Modifications du code de suivi • Suivre qui a apporté des modifications • Codage collaboratif Que fait Git ? • Gérer des projets avec les référentiels • Cloner un projet pour travailler sur une copie locale • Contrôlez et suivez les modifications avec Staging et Committing • Branchez et fusionnez pour permettre de travailler sur différentes parties et versions d'un projet • Tirez la dernière version du projet vers une copie locale • Pousser les mises à jour locales vers le projet principal Formateur Jaouad Assabbour
  • 3. Travailler avec Git • Initialiser Git sur un dossier, en en faisant un référentiel • Git crée maintenant un dossier caché pour garder une trace des modifications dans ce dossier • Lorsqu'un fichier est modifié, ajouté ou supprimé, il est considéré comme modifié • Vous sélectionnez les fichiers modifiés que vous souhaitez mettre en scène • Les fichiers Staged sont Committed , ce qui invite Git à stocker un instantané permanent des fichiers • Git vous permet de voir l'historique complet de chaque commit. • Vous pouvez revenir à n'importe quel commit précédent. • Git ne stocke pas une copie séparée de chaque fichier dans chaque commit, mais garde une trace des modifications apportées à chaque commit ! Pourquoi Git ? • Plus de 70% des développeurs utilisent Git ! • Les développeurs peuvent travailler ensemble de n'importe où dans le monde. • Les développeurs peuvent voir l'historique complet du projet. Formateur Jaouad Assabbour
  • 4. • Les développeurs peuvent revenir aux versions antérieures d'un projet. Qu'est-ce que GitHub ? • Git n'est pas la même chose que GitHub. • GitHub crée des outils qui utilisent Git. • GitHub est le plus grand hôte de code source au monde et appartient à Microsoft depuis 2018. • Dans ce cours, nous allons nous concentrer sur l'utilisation de Git avec GitHub. Formateur Jaouad Assabbour
  • 5. Installer Git Vous pouvez télécharger Git gratuitement sur le site suivant : https://www.git-scm.com/ Utilisation de Git avec la ligne de commande Pour commencer à utiliser Git, nous allons d'abord ouvrir notre shell de commande. Pour Windows, vous pouvez utiliser Git bash, qui est inclus dans Git pour Windows. Pour Mac et Linux, vous pouvez utiliser le terminal intégré. La première chose que nous devons faire est de vérifier si Git est correctement installé : Si Git est installé, il devrait afficher quelque chose comme git version X.Y Formateur Jaouad Assabbour
  • 6. Configurer Git Faites maintenant savoir à Git qui vous êtes. Ceci est important pour les systèmes de contrôle de version, car chaque commit Git utilise ces informations : Remplacez le nom d'utilisateur et l'adresse e-mail par les vôtres. Vous voudrez probablement également l'utiliser lors de votre inscription ultérieure à GitHub. Remarque : Utilisez global pour définir le nom d'utilisateur et l'adresse e-mail pour chaque référentiel sur votre ordinateur. Si vous souhaitez définir le nom d'utilisateur/e-mail uniquement pour le référentiel actuel, vous pouvez supprimer global Formateur Jaouad Assabbour
  • 7. Création du dossier Git Maintenant, créons un nouveau dossier pour notre projet : mkdir créer un nouveau répertoire . cd change le répertoire de travail courant . Maintenant que nous sommes dans le bon répertoire. Nous pouvons commencer par initialiser Git ! Remarque : Si vous avez déjà un dossier/répertoire que vous souhaitez utiliser pour Git : Accédez-y en ligne de commande ou ouvrez-le dans votre explorateur de fichiers, cliquez avec le bouton droit de la souris et sélectionnez "Git Bash ici" Formateur Jaouad Assabbour
  • 8. Initialiser Git Une fois que vous avez navigué vers le bon dossier, vous pouvez initialiser Git sur ce dossier : Vous venez de créer votre premier référentiel Git ! Remarque : Git sait maintenant qu'il doit surveiller le dossier sur lequel vous l'avez lancé. Git crée un dossier caché pour garder une trace des modifications. Formateur Jaouad Assabbour
  • 9. Git Ajout de nouveaux fichiers Vous venez de créer votre premier référentiel Git local. Mais c'est vide. Alors ajoutons quelques fichiers ou créons un nouveau fichier à l'aide de votre éditeur de texte préféré. En suite, enregistrez-le ou déplacez-le dans le dossier que vous venez de créer. Pour cet exemple, je vais utiliser un simple fichier HTML comme celui-ci : Et enregistrez-le dans notre nouveau dossier en tant que index.html. Revenons au terminal et listons les fichiers dans notre répertoire de travail actuel : ls listera les fichiers du répertoire. Nous pouvons voir que index.html c'est là. Formateur Jaouad Assabbour
  • 10. Ensuite, nous vérifions le Git status et voyons s'il fait partie de notre référentiel : Maintenant, Git est au courant du fichier, mais ne l'a pas ajouté à notre référentiel ! Les fichiers de votre dossier de dépôt Git peuvent être dans l'un des 2 états suivants : • Tracked - fichiers connus de Git et ajoutés au référentiel • Untracked - fichiers qui se trouvent dans votre répertoire de travail, mais qui ne sont pas ajoutés au référentiel Lorsque vous ajoutez pour la première fois des fichiers à un référentiel vide, ils sont tous Untracked. Pour que Git les Tracked, vous devez les mettre en scène ou les ajouter à l'environnement de mise en scène. Nous couvrirons l'environnement de mise en scène dans le chapitre suivant. Formateur Jaouad Assabbour
  • 11. Git Environment L'une des fonctions principales de Git est les concepts d'environnement de staging et de commit. Pendant que vous travaillez, vous pouvez ajouter, modifier et supprimer des fichiers. Mais chaque fois que vous atteignez un jalon ou terminez une partie du travail, vous devez ajouter les fichiers à un environnement de staging. Les fichiers préparés sont des fichiers prêts à être validés dans le référentiel sur lequel vous travaillez. Vous en saurez plus prochainement sur le commit. Pour l'instant, nous avons fini de travailler avec index.html. Nous pouvons donc l'ajouter à l'environnement de staging : Le fichier doit être Staged . Vérifions l'état : Maintenant, le fichier a été ajouté à l'environnement de staging. Formateur Jaouad Assabbour
  • 12. Git ajouter plus d'un fichier Vous pouvez également organiser plusieurs fichiers à la fois. Ajoutons 2 autres fichiers à notre dossier de travail. Utilisez à nouveau l'éditeur de texte. Un README.md fichier décrivant le référentiel (recommandé pour tous les référentiels). Une feuille de style externe de base ( bluestyle.css) : Formateur Jaouad Assabbour
  • 13. Et mettez à jour index.html pour inclure la feuille de style : Ajoutez maintenant tous les fichiers du répertoire actuel à l'environnement de staging : Formateur Jaouad Assabbour
  • 14. L'utilisation –all à la place des noms de fichiers individuels entraînera stage tous les fichiers de modifications (nouveaux, modifiés et supprimés). Maintenant, les 3 fichiers sont ajoutés à l'environnement de staging et nous sommes prêts à faire notre premier fichier commit. Remarque : La commande raccourcie pour git add –all est git add -A Formateur Jaouad Assabbour
  • 15. Git Commit Puisque nous avons terminé notre travail, nous sommes prêts à passer de stage à commit pour notre repo. L'ajout de commits permet de suivre nos progrès et nos changements au fur et à mesure que nous travaillons. Git considère chaque commit point de changement ou "point de sauvegarde". C'est un point du projet auquel vous pouvez revenir si vous trouvez un bogue ou si vous souhaitez apporter une modification. Lorsque nous commit, nous devrions toujours inclure un message . En ajoutant des messages clairs à chacun commit, il est facile pour vous (et pour les autres) de voir ce qui a changé et quand. La commit commande effectue une validation et ajoute un message.-m "message" L'environnement de mise en scène a été engagé dans notre référentiel, avec le message : "Première version de Hello World !" Formateur Jaouad Assabbour
  • 16. Git Commit sans étape Parfois, lorsque vous apportez de petites modifications, l'utilisation de l'environnement de staging semble être une perte de temps. Il est possible de valider directement les modifications, en sautant l'environnement de staging. L' -a option mettra automatiquement en scène chaque fichier modifié et déjà suivi. Ajoutons une petite mise à jour à index.html : Et vérifiez l'état de notre référentiel. Mais cette fois, nous utiliserons l'option --short pour voir les changements de manière plus compacte : Formateur Jaouad Assabbour
  • 17. Remarque : les indicateurs d'état courts sont : • ?? - Fichiers Untracked • A - Fichiers ajoutés à l'étape • M - Fichiers modifiés • D - Fichiers supprimés Nous voyons que le fichier que nous attendions est modifié. Alors engageons-le directement : Avertissement : Ignorer l'environnement de transfert n'est généralement pas recommandé. Sauter l'étape de l'étape peut parfois vous amener à inclure des modifications indésirables. Git Commit Log Pour afficher l'historique des commits d'un dépôt, vous pouvez utiliser la commande log: Formateur Jaouad Assabbour
  • 18. Git Help Si vous rencontrez des difficultés pour vous souvenir des commandes ou des options des commandes, vous pouvez utiliser Git help. Il existe plusieurs façons d'utiliser la commande help en ligne de commande : • git command --help Voir toutes les options disponibles pour la commande spécifique • git help -–all Voir toutes les commandes possibles Formateur Jaouad Assabbour
  • 19. Passons en revue les différentes commandes. Git -help Voir les options d'une commande spécifique Chaque fois que vous avez besoin d'aide pour vous souvenir de l'option spécifique d'une commande, vous pouvez utiliser : git command - help Formateur Jaouad Assabbour
  • 21. Remarque : vous pouvez également utiliser à la place --help de -help pour ouvrir la page de manuel Git correspondante Formateur Jaouad Assabbour
  • 22. Git Branch Travailler avec les branches Git Dans Git, a branch est une nouvelle version/séparée du référentiel principal. Disons que vous avez un grand projet et que vous devez mettre à jour la conception. Comment cela fonctionnerait-il sans et avec Git : Sans Git : • Faites des copies de tous les fichiers pertinents pour ne pas impacter la version live • Commencez à travailler avec la conception et constatez que le code dépend du code dans d'autres fichiers, qui doivent également être modifiés ! • Faites également des copies des fichiers dépendants. S'assurer que chaque dépendance de fichier fait référence au nom de fichier correct • URGENCE! Il y a une erreur sans rapport ailleurs dans le projet qui doit être corrigée dès que possible ! • Enregistrez tous vos fichiers en notant les noms des copies sur lesquelles vous travailliez • Travaillez sur l'erreur non liée et mettez à jour le code pour le corriger • Revenez à la conception et terminez le travail là-bas • Copiez le code ou renommez les fichiers, de sorte que la conception mise à jour soit sur la version en direct • (2 semaines plus tard, vous réalisez que l'erreur non liée n'a pas été corrigée dans la nouvelle version de conception car vous avez copié les fichiers avant le correctif) Formateur Jaouad Assabbour
  • 23. Avec Git : • Avec une nouvelle branche appelée new-design, éditez le code directement sans impacter la branche principale • URGENCE! Il y a une erreur sans rapport ailleurs dans le projet qui doit être corrigée dès que possible ! • Créez une nouvelle branche à partir du projet principal appelée small-error-fix • Corrigez l'erreur non liée et fusionnez la branche small-error-fix avec la branche principale • Vous retournez à la branche new-design et y terminez le travail • Fusionner la branche new-design avec main (être alerté du petit correctif d'erreur qui vous manquait) Les branches vous permettent de travailler sur différentes parties d'un projet sans impact sur la branche principale. Lorsque le travail est terminé, une branche peut être fusionnée avec le projet principal. Vous pouvez même basculer entre les branches et travailler sur différents projets sans qu'ils n'interfèrent les uns avec les autres. La création de branches dans Git est très légère et rapide ! Formateur Jaouad Assabbour
  • 24. Nouvelle branche Git Ajoutons quelques nouvelles fonctionnalités à notre page index.html. Nous travaillons dans notre référentiel local et nous ne voulons pas perturber ou éventuellement détruire le projet principal. Nous créons donc une nouvelle branche: Maintenant, nous avons créé une nouvelle branche nommé " hello- world-images" Confirmons que nous avons créé une nouvelle branche: Nous pouvons voir la nouvelle branche avec le nom "hello-world-images", mais le *côté master précise que nous sommes actuellement sur celle- ci branch. Checkout est la commande utilisée pour extraire un fichier branch. Nous déplaçant du courant branch vers celui spécifié à la fin de la commande : Formateur Jaouad Assabbour
  • 25. Nous avons maintenant déplacé notre espace de travail actuel de la branche master vers la nouvelle branch Ouvrez votre éditeur préféré et apportez quelques modifications. Pour cet exemple, nous avons ajouté une image (img_hello_world.jpg) au dossier de travail et une ligne de code dans le fichier index.html : Nous avons apporté des modifications à un fichier et ajouté un nouveau fichier dans le répertoire de travail (même répertoire que le main branch). Vérifiez maintenant l'état du courantbranch : Formateur Jaouad Assabbour
  • 26. Passons donc en revue ce qui se passe ici : • Des modifications ont été apportées à notre fichier index.html, mais le fichier n'est pas préparé pour commit • img_hello_world.jpg n'est pas tracked Nous devons donc ajouter les deux fichiers à l'environnement de staging pour cela branch : Utiliser –all à la place des noms de fichiers individuels mettra en scène tous les fichiers modifiés (nouveaux, modifiés et supprimés). Vérifiez status les branch: Nous sommes satisfaits de nos changements. Nous allons donc les engager dans branch: Formateur Jaouad Assabbour
  • 27. Nous avons maintenant une nouvelle branch, qui est différent du branch Master. Remarque : L'utilisation de l' -boption on checkout créera une nouvelle branche et se déplacera vers elle si elle n'existe pas Switching Between Branches Voyons maintenant à quel point il est rapide et facile de travailler avec différentes branches, et à quel point cela fonctionne. Nous sommes actuellement sur la branche hello-world-images. Nous avons ajouté une image à cette branche, listons donc les fichiers dans le répertoire courant : Nous pouvons voir le nouveau fichier img_hello_world.jpg, et si nous ouvrons le fichier html, nous pouvons voir que le code a été modifié. Tout est comme il se doit. Voyons maintenant ce qui se passe lorsque nous changeons de branche en master Formateur Jaouad Assabbour
  • 28. La nouvelle image ne fait pas partie de cette branche. Listez à nouveau les fichiers du répertoire courant : img_hello_world.jpg n'est plus là ! Et si nous ouvrons le fichier html, nous pouvons voir le code revenir à ce qu'il était avant la modification. Vous voyez à quel point il est facile de travailler avec des succursales ? Et en quoi cela vous permet de travailler sur des choses différentes ? Formateur Jaouad Assabbour
  • 29. Emergency Branch Imaginons maintenant que nous n'en ayons pas encore fini avec hello- world-images, mais que nous devions corriger une erreur sur master. Je ne veux pas jouer directement avec master, et je ne veux pas jouer avec hello-world-images, puisque ce n'est pas encore fait. Nous créons donc une nouvelle branche pour faire face à emergement : Maintenant, nous avons créé une nouvelle branche à partir de master et y avons changé. Nous pouvons corriger l'erreur en toute sécurité sans déranger les autres branches. Corrigeons notre erreur imaginaire : Formateur Jaouad Assabbour
  • 30. Nous avons apporté des modifications à ce fichier et nous devons transférer ces modifications dans la branche master. Vérifiez l'état : mettez le fichier en commit et validez : Nous avons maintenant un correctif prêt pour master et nous devons fusionner les deux branches. Formateur Jaouad Assabbour
  • 31. Git Branch Merge Fusionner les branches Nous avons le emergency fix, alors fusionnons les branches master et emergency-fix. Tout d'abord, nous devons passer à la branche master : Maintenant, nous fusionnons la branche actuelle (Master) avec le emergency-fix : Étant donné que la branche de correction d'urgence provenait directement de master et qu'aucune autre modification n'avait été apportée à master pendant que nous travaillions, Git considère cela comme une continuation de master. Ainsi, il peut "avancer rapidement", en pointant simplement le maître et le emergency-fix vers le même commit. Comme le master et le emergency-fix sont essentiellement les mêmes maintenant, nous pouvons supprimer le emergency-fix , car il n'est plus nécessaire : Formateur Jaouad Assabbour
  • 32. Merge Conflict Maintenant, nous pouvons passer à hello-world-images et continuer à travailler. Ajoutez un autre fichier image (img_hello_git.jpg) et modifiez index.html pour qu'il s'affiche Maintenant, nous avons terminé notre travail ici et pouvons organiser et valider pour cette branche : Formateur Jaouad Assabbour
  • 33. Nous voyons que index.html a été modifié dans les deux branches. Nous sommes maintenant prêts à fusionner hello-world-images dans master. Mais qu'adviendra-t-il des changements que nous avons récemment apportés à master ? La fusion a échoué, car il existe un conflit entre les versions de index.html. Vérifions l'état : Cela confirme qu'il y a un conflit dans index.html, mais les fichiers image sont prêts et préparés pour être validés. Formateur Jaouad Assabbour
  • 34. Nous devons donc résoudre ce conflit. Ouvrez le fichier dans notre éditeur : Nous pouvons voir les différences entre les versions et les modifier comme nous le souhaitons : Formateur Jaouad Assabbour
  • 35. Nous pouvons maintenant mettre en commit index.html et vérifier l'état : Le conflit a été corrigé et nous pouvons utiliser commit pour conclure la fusion : Et supprimez la branche hello-world-images : Vous avez maintenant une meilleure compréhension du fonctionnement des branches et de la fusion. Il est temps de commencer à travailler avec un référentiel distant ! Formateur Jaouad Assabbour
  • 36. Git GitHub Premiers pas Compte GitHub Allez sur www.gitbub.com et créez un compte : Remarque : N'oubliez pas d'utiliser la même adresse e-mail que celle que vous avez utilisée dans la configuration Git. Formateur Jaouad Assabbour
  • 37. Créer un référentiel sur GitHub Maintenant que vous avez créé un compte GitHub, connectez-vous et créez un nouveau Repo : Formateur Jaouad Assabbour
  • 38. Et remplissez les détails pertinents: Nous reviendrons sur les différentes options et ce qu'elles signifient plus tard. Mais pour l'instant, choisissez Public (si vous voulez que le dépôt soit visible pour tout le monde) ou Privé (si vous voulez choisir qui doit pouvoir voir le dépôt). Dans tous les cas, vous pourrez choisir qui peut contribuer au dépôt. Cliquez ensuite sur "Créer un référentiel". Formateur Jaouad Assabbour
  • 39. Pousser le référentiel local vers GitHub Puisque nous avons déjà mis en place un dépôt Git local, nous allons push vers GitHub : Copiez l'URL ou cliquez sur le presse-papiers marqué dans l'image ci- dessus. Collez-y maintenant la commande suivante : git remote add origin URL spécifie que vous ajoutez un référentiel distant, avec le spécifié URL, en tant que origin à votre référentiel Git local. Formateur Jaouad Assabbour
  • 40. Nous allons maintenant pousser notre branche principale vers l'url d'origine et la définir comme branche distante par défaut : Remarque : étant donné que c'est la première fois que vous vous connectez à GitHub, vous recevrez une sorte de notification vous permettant d'authentifier cette connexion. Formateur Jaouad Assabbour
  • 41. Maintenant, retournez dans GitHub et voyez que le référentiel a été mis à jour : Formateur Jaouad Assabbour
  • 42. Modifier le code dans GitHub En plus d'être un hébergeur de contenu Git, GitHub dispose d'un très bon éditeur de code. Essayons de modifier le fichier README.md dans GitHub. Cliquez simplement sur le bouton Modifier : Formateur Jaouad Assabbour
  • 43. Ajoutez quelques modifications au code, puis commitles modifications. Pour l'instant, nous allons "Commiter directement dans la branche master". N'oubliez pas d'ajouter une description pour commit: C'est ainsi que vous modifiez le code directement dans GitHub ! Formateur Jaouad Assabbour
  • 44. Git Pull de GitHub Tirer pour se tenir au courant des changements Lorsque vous travaillez en équipe sur un projet, il est important que tout le monde reste à jour. Chaque fois que vous commencez à travailler sur un projet, vous devriez obtenir les modifications les plus récentes sur votre copie locale. Avec Git, vous pouvez le faire avec pull. Pull est une combinaison de 2 commandes différentes : • fetch • merge Examinons de plus près le fonctionnement fetch , merge et pull. Formateur Jaouad Assabbour
  • 45. Git Fetch Fetch obtient tout l'historique des modifications d'une branche/dépôt suivi. Donc, sur votre Git local, faites des fetch mises à jour pour voir ce qui a changé sur GitHub : Maintenant que nous avons le récent changes, nous pouvons vérifier notre status: Formateur Jaouad Assabbour
  • 46. Nous sommes en retard origin/master de un commit. Cela devrait être la mise à jour README.md, mais permet de vérifier en consultant le log: Cela ressemble à ce que nous attendions, mais nous pouvons également vérifier en montrant les différences notre local master et origin/master: Cela ressemble exactement à ce que nous attendions ! Maintenant, nous pouvons en toute sécurité merge Formateur Jaouad Assabbour
  • 47. Git Merge Merge combine la branche actuelle avec une branche spécifiée. Nous avons confirmé que les mises à jour sont comme prévu, et nous pouvons fusionner notre branche actuelle ( master) avec origin/master: Vérifiez status à nouveau notre pour confirmer que nous sommes à jour : Là! Votre git local est à jour ! Formateur Jaouad Assabbour
  • 48. Git-Pull Mais que se passe-t-il si vous souhaitez simplement mettre à jour votre référentiel local, sans passer par toutes ces étapes ? Pull est une combinaison de fetch et merge. Il est utilisé pour extraire toutes les modifications d'un référentiel distant dans la branche sur laquelle vous travaillez. Apportez une autre modification au fichier Readme.md sur GitHub. Formateur Jaouad Assabbour
  • 49. Utilisez pull pour mettre à jour notre Git local : C'est ainsi que vous maintenez votre Git local à jour à partir d'un référentiel distant. Dans le prochain chapitre, nous verrons de plus près comment push fonctionne avec GitHub. Formateur Jaouad Assabbour
  • 50. Git Push to GitHub Essayons d'apporter quelques modifications à notre git local et de les pousser vers GitHub. Validez les modifications : Et vérifiez l'état : Formateur Jaouad Assabbour
  • 51. Poussez maintenant nos modifications vers notre origine distante : Accédez à GitHub et confirmez que le dépôt a un nouveau commit : Maintenant, nous allons commencer à travailler sur les branches sur GitHub. Formateur Jaouad Assabbour
  • 52. Git GitHub Branch Créer une nouvelle branche sur GitHub Sur GitHub, accédez à votre référentiel et cliquez sur le bouton de branche "master". Là, vous pouvez créer une nouvelle branche. Tapez un nom descriptif et cliquez sur Créer une branche Formateur Jaouad Assabbour
  • 53. Le branch devrait maintenant être créé et actif. Vous pouvez confirmer sur quelle branche vous travaillez en regardant le bouton de branche. Vous voyez qu'il est maintenant écrit "squelette html" au lieu de "main" ? Formateur Jaouad Assabbour
  • 54. Commencez à travailler sur un fichier existant dans cette branche. Cliquez sur le fichier index.html " " et commencez à éditer : Formateur Jaouad Assabbour
  • 55. Une fois que vous avez terminé de modifier le fichier, vous pouvez cliquer sur l'onglet "Aperçu des modifications" pour voir les modifications apportées en surbrillance : Formateur Jaouad Assabbour
  • 56. Si vous êtes satisfait de la modification, ajoutez un commentaire expliquant ce que vous avez fait, puis cliquez sur Valider les modifications. Vous avez maintenant une nouvelle branche sur GitHub, mis à jour avec quelques changements ! Formateur Jaouad Assabbour
  • 57. Git Pull Branch from GitHub Continuez maintenant à travailler sur notre new branchdans notre Git local. Reprenons pull notre référentiel GitHub pour que notre code soit à jour : Maintenant, notre principal branch est à jour. Et on peut voir qu'il y en a une nouvelle branch disponible sur GitHub. Faites une status vérification rapide : Et confirmez quelles succursales nous avons et où nous travaillons en ce moment : Formateur Jaouad Assabbour
  • 58. Donc, nous n'avons pas la nouvelle branche sur notre Git local. Mais nous savons qu'il est disponible sur GitHub. Nous pouvons donc utiliser l' option -a pour voir toutes les branches locales et distantes : Remarque : branch -r concerne uniquement les succursales distantes. Nous voyons que la branche html-skeleton est disponible à distance, mais pas sur notre git local. Regardons ça: Et vérifiez si tout est à jour : Formateur Jaouad Assabbour
  • 59. Quelles succursales avons-nous maintenant et d'où travaillons-nous ? Maintenant, ouvrez votre éditeur préféré et confirmez que les modifications de la branche GitHub ont été transférées. C'est ainsi que vous tirez une branche GitHub vers votre Git local. Formateur Jaouad Assabbour
  • 60. Git Push Branch to GitHub Essayons de créer une nouvelle branche locale et de la pousser vers GitHub. Commencez par créer une branche, comme nous l'avons fait précédemment : Et nous apportons quelques modifications au fichier README.md. Ajoutez simplement une nouvelle ligne. Alors maintenant, nous vérifions le status de la branche actuelle. Nous voyons que README.md est modifié mais pas ajouté à l'environnement de staging : Formateur Jaouad Assabbour
  • 61. Vérifiez status de la branche : Nous sommes satisfaits de nos changements. Alors nous allons commit au branch: Maintenant push : branch, depuis notre référentiel Git local, vers GitHub, où tout le monde peut voir les modifications Formateur Jaouad Assabbour
  • 62. Allez sur GitHub et confirmez que le dépôt a un nouveau branch: Dans GitHub, nous pouvons maintenant voir les modifications intégrer et les merge au branch Master si nous l'approuvons. Formateur Jaouad Assabbour
  • 63. Si vous cliquez sur "Compare & pull request", vous pouvez passer en revue les modifications apportées et les nouveaux fichiers ajoutés : Remarque : cette comparaison montre à la fois les modifications depuis update-readme et html-skeletonparce que nous avons créé la nouvelle branche FROM html-skeleton. Formateur Jaouad Assabbour
  • 64. Si les changements semblent bons, vous pouvez continuer en créant un pull request: Une demande d'extraction est la façon dont vous proposez des modifications. Vous pouvez demander à certains de revoir vos modifications ou d'extraire votre contribution et de la fusionner dans leur branche. Formateur Jaouad Assabbour
  • 65. Puisqu'il s'agit de votre propre référentiel, vous pouvez vous merge même effectuer votre pull request : La demande d'extraction enregistrera les modifications, ce qui signifie que vous pourrez les parcourir plus tard pour comprendre les modifications apportées. Formateur Jaouad Assabbour
  • 66. Le résultat devrait ressembler à ceci : Formateur Jaouad Assabbour
  • 67. Pour éviter que le dépôt ne devienne trop compliqué, vous pouvez supprimer la branche désormais inutilisée en cliquant sur "Supprimer la branche". Une fois que vous avez confirmé que les modifications de la branche précédente ont été incluses, supprimez-les également : Formateur Jaouad Assabbour
  • 68. Git GitHub Flow Travailler avec le flux GitHub Sur cette page, vous apprendrez comment tirer le meilleur parti de votre travail avec GitHub. Le flux GitHub est un flux de travail conçu pour bien fonctionner avec Git et GitHub. Il se concentre sur la ramification et permet aux équipes d'expérimenter librement et de faire des déploiements régulièrement. Le flux GitHub fonctionne comme ceci : • Créer une nouvelle branche • Apporter des modifications et ajouter des commits • Ouvrir une demande d'extraction • Examen • Déployer • Fusionner Vous devriez déjà avoir une bonne compréhension de la façon dont cela fonctionne à partir des chapitres précédents. Ce chapitre se concentre sur la compréhension de la façon dont le flux vous permet de travailler facilement ensemble. Formateur Jaouad Assabbour
  • 69. Créer une nouvelle branche La création de branches est le concept clé de Git. Et cela fonctionne autour de la règle selon laquelle la branche master est TOUJOURS déployable. Cela signifie que si vous voulez essayer quelque chose de nouveau ou expérimenter, vous créez une nouvelle branche ! La création de branches vous offre un environnement dans lequel vous pouvez apporter des modifications sans affecter la branche principale. Lorsque votre nouvelle branche est prête, elle peut être examinée, discutée et fusionnée avec la branche principale lorsqu'elle est prête. Lorsque vous créez une nouvelle branche, vous voudrez (presque toujours) la créer à partir de la branche master. Remarque : Gardez à l'esprit que vous travaillez avec d'autres. Utiliser des noms descriptifs pour les nouvelles branches, afin que chacun puisse comprendre ce qui se passe. Formateur Jaouad Assabbour
  • 70. Apporter des modifications et ajouter des commits Une fois la nouvelle branche créée, il est temps de se mettre au travail. Apportez des modifications en ajoutant, modifiant et supprimant des fichiers. Chaque fois que vous atteignez un petit jalon, ajoutez les modifications à votre branche par commit. L'ajout de commits permet de suivre votre travail. Chaque commit doit avoir un message expliquant ce qui a changé et pourquoi. Chaque commit devient une partie de l'historique de la branche et un point auquel vous pouvez revenir si nécessaire. Remarque : les messages de validation sont très importants ! Faites savoir à tout le monde ce qui a changé et pourquoi. Les messages et les commentaires vous permettent, à vous et aux autres, de suivre plus facilement les modifications. Formateur Jaouad Assabbour
  • 71. Ouvrir une demande d'extraction (Pull Request) Les demandes d'extraction sont un élément clé de GitHub. Une demande d'extraction informe les personnes que vous avez des modifications prêtes à être prises en compte ou révisées. Vous pouvez demander à d'autres de revoir vos modifications ou d'extraire votre contribution et de la fusionner dans leur branche. Examen Lorsqu'une demande d'extraction est effectuée, elle peut être examinée par toute personne disposant d'un accès approprié à la branch. C'est là que se produisent de bonnes discussions et un examen des changements. Les Pull Requests sont conçues pour permettre aux gens de travailler ensemble facilement et de produire de meilleurs résultats ensemble ! Si vous recevez des commentaires et que vous continuez à améliorer vos modifications, vous pouvez pousser vos modifications avec de nouveaux commits, ce qui rend possible d'autres révisions. Remarque : GitHub affiche les nouveaux commits et les commentaires dans la "unified Pull Request view". Formateur Jaouad Assabbour
  • 72. Déployer Lorsque la demande d'extraction a été examinée et que tout semble bon, il est temps de procéder aux tests finaux. GitHub vous permet de déployer à partir d'une branche pour les tests finaux en production avant de fusionner avec la branche principale. En cas de problème, vous pouvez annuler les modifications en déployant à nouveau la branche principale en production ! Remarque : les équipes disposent souvent d'environnements de test dédiés utilisés pour déployer des branches. Fusionner (merge) Après des tests exhaustifs, vous pouvez fusionner le code dans la branche master ! Les demandes d'extraction conservent des enregistrements des modifications apportées à votre code, et si vous avez bien commenté et nommé les modifications, vous pouvez revenir en arrière et comprendre pourquoi les modifications et les décisions ont été prises. Remarque : Vous pouvez ajouter des mots-clés à votre pull request pour faciliter la recherche ! Formateur Jaouad Assabbour
  • 73. Git GitHub Fork Ajouter au référentiel de quelqu'un. Au cœur de Git se trouve la collaboration. Cependant, Git ne vous permet pas d'ajouter du code au référentiel de quelqu'un d'autre sans droits d'accès. Dans ces 3 prochains chapitres, nous vous montrerons comment copier un référentiel, y apporter des modifications et suggérer que ces modifications soient implémentées dans le référentiel d'origine. A la fin de ces chapitres, vous aurez la possibilité d'ajouter un message sur notre page publique GitHub : https://w3schools- test.github.io/ Forker un référentiel A fork est une copie d'un référentiel. Ceci est utile lorsque vous souhaitez contribuer au projet de quelqu'un ou démarrer votre propre projet basé sur le sien. Fork n'est pas une commande dans Git, mais quelque chose offert dans GitHub et d'autres hôtes de référentiel. Commençons par nous connecter à GitHub et à fork notre référentiel: https://github.com/w3schools-test/w3schools-test.github.io Formateur Jaouad Assabbour
  • 74. Nous avons maintenant notre propre copie de w3schools-test.github.io: Voyons maintenant comment nous ajoutons une copie locale de ceci avec laquelle nous pouvons travailler. Formateur Jaouad Assabbour
  • 75. Clone a Fork from GitHub Maintenant, nous avons notre propre fork, mais uniquement sur GitHub. Nous voulons également un clone sur notre Git local pour continuer à travailler dessus. A clone est une copie complète d'un référentiel, y compris toute la journalisation et les versions des fichiers. Revenez au référentiel d' origine et cliquez sur le bouton vert "Code" pour obtenir le URL à clone : Ouvrez votre bash Git et clonele dépôt : Formateur Jaouad Assabbour
  • 76. Jetez un œil à votre système de fichiers et vous verrez un nouveau répertoire nommé d'après le projet cloné : Remarque : Pour spécifier un dossier spécifique vers lequel cloner, ajoutez le nom du dossier après le référentiel URL, comme ceci : git clone https://github.com/w3schools- test/w3schools-test.github.io.git myfolder Naviguez jusqu'au nouveau répertoire, et cochez status: Et vérifiez le log pour confirmer que nous avons les données complètes du référentiel : Nous avons maintenant une copie complète du référentiel d'origine. Formateur Jaouad Assabbour
  • 77. Configuration des Remotes Fondamentalement, nous avons une copie complète d'un référentiel, auquel origin nous ne sommes pas autorisés à apporter des modifications. Voyons comment les remotes de ce Git est configuré : Nous voyons que origin le dépôt " " d'origine est configuré w3schools-test, nous souhaitons également ajouter nôtre fork. Tout d'abord, nous rename l'original origin remote: Ensuite, récupérez le URL nôtre fork : Formateur Jaouad Assabbour
  • 78. Et ajouter cela comme origin: Remarque : selon les conventions de nommage de Git, il est recommandé de nommer votre propre référentiel originet celui que vous avez créé upstream Maintenant nous avons 2 remotes : • origin le nôtre fork, où nous avons un accès en lecture et en écriture • upstream - l'original, où nous avons un accès en lecture seule Nous allons maintenant apporter quelques modifications au code. Dans le chapitre suivant, nous expliquerons comment nous suggérons ces modifications au référentiel d'origine. Formateur Jaouad Assabbour
  • 79. Push Changes to Our GitHub Fork Nous avons apporté de nombreuses modifications à notre Git local. Maintenant, nous push les dirigeons vers notre GitHub fork: commit les changements: Allez sur GitHub, et nous voyons que le référentiel a un nouveau commit. Et nous pouvons envoyer une demande d'extraction au référentiel d'origine : Formateur Jaouad Assabbour
  • 81. Cliquez dessus et créez une pull request : N'oubliez pas d'ajouter une explication pour les administrateurs. Formateur Jaouad Assabbour
  • 82. La Pull Request est envoyée : Formateur Jaouad Assabbour
  • 84. Approbation des Pull Requests Désormais, tout membre disposant d'un accès peut voir la pull requests lorsqu'il voit le référentiel d'origine : Et ils peuvent voir les modifications proposées : Formateur Jaouad Assabbour
  • 85. Commentez les changements et merge: Formateur Jaouad Assabbour
  • 88. Et les changements ont été merged a master: Fin merci pour votre attention Jaouad assabbour Formateu web Formateur Jaouad Assabbour