• Aide
  • Eurêkoi Eurêkoi

Livre

Git : maîtrisez la gestion de vos versions : concepts, utilisation et cas pratiques

Résumé

Des conseils pratiques pour guider le lecteur dans l'installation et l'utilisation de ce logiciel de gestion de versions décentralisé, accompagnés d'un focus sur la méthode git-flow. En complément, deux scénarios de mise en situation pour appréhender le logiciel de manière plus concrète ainsi qu'une liste d'alias et de commandes. Des ressources complémentaires sont accessibles en ligne.


  • Éditeur(s)
  • Date
    • C 2023
  • Notes
    • La couv. porte en plus : "Informatique technique" ; "En téléchargement : dépôts Git" ; "+ quiz" ; "Version en ligne offerte pendant 1 an !"
    • La 4e de couv. indique en plus : "Sur www.editions-eni.fr : les principaux dépôts d'exemples du livres"
    • contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (413 p.) : ill. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-03962-1
  • Indice
    • 681.2 Programmation (généralités)
  • Quatrième de couverture
    • Git

      Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques)

      Ce livre s'adresse principalement aux développeurs et aux chefs de projet mais également aux professionnels appelés à modifier des codes sources (graphiste, webdesigner, etc.).

      Le livre présente tout d'abord l'historique des solutions de gestion de versions et leur intérêt. Il permet ensuite au lecteur d'installer et de configurer Git puis de l'utiliser tout au long de cinq chapitres progressifs (fonctionnement des branches, partage d'un dépôt, outils internes...). Un chapitre permet au lecteur de bien appréhender git-flow, une méthode pour gérer efficacement les différentes versions d'un projet en entreprise.

      Deux chapitres présentent la gestion de versions de manière très pragmatique en utilisant deux scénarios mettant en oeuvre des développeurs. Le premier scénario reprend les bases de l'utilisation de Git et montre l'utilisation des principales commandes dans des cas quasi-réels. Le deuxième scénario met en scène une équipe de développeurs : de l'installation de Git-Lab, jusqu'à une utilisation de la méthode git-flow par l'équipe. Ce chapitre détaille les principales étapes par lesquelles l'équipe doit passer pour versionner un projet existant.

      Un chapitre présente une liste d'alias et de commandes prêtes à l'emploi, fruit d'années de pratique de Git de l'auteur, afin que le lecteur utilise Git plus efficacement et puisse obtenir des solutions de problèmes communs. Le dernier chapitre présente un cas réel d'intégration continue 100 % Git dans le cadre d'un développement web avec le framework Django.

      En annexe, un aide-mémoire permet de visualiser rapidement les principales commandes et leurs principales options. Une présentation de la plateforme GitHub et des changements qu'elle apporte dans la collaboration entre développeurs est également proposée par l'auteur.


  • Tables des matières
      • Git

      • Maîtrisez la gestion de vos versions

      • 4e édition

      • Éditions ENI

      • Avant-propos
      • 1. À qui s'adresse cet ouvrage ?17
      • 2. Objectifs de l'ouvrage17
      • 3. Prérequis18
      • 4. Progression18
      • 5. Détail des chapitres19
      • 6. Un point sur les langues21
      • 7. Remerciements21
      • 8. Introduction à Git22
      • Chapitre 1
      • Git et la gestion de version
      • 1. La gestion de version23
      • 2. Les intérêts de la gestion de version24
      • 2.1 Une véritable machine à remonter le temps24
      • 2.2 Une documentation détaillée et datée24
      • 2.3 Une pierre de Rosette pour collaborer25
      • 3. Histoire de la gestion de version25
      • 3.1 Systèmes de gestion de versions locaux25
      • 3.2 Systèmes de gestion de versions centralisés26
      • 3.3 Systèmes de gestion de versions décentralisés27
      • 4. Pourquoi Git ?30
      • Chapitre 2
      • Installation de Git
      • 1. Installation sous Linux33
      • 1.1 Installation à partir de paquets préexistants33
      • 1.2 Installation à partir des sources34
      • 2. Installation sous Mac OS X35
      • 3. Installation sous Windows36
      • 4. L'aide de Git51
      • 4.1 Généralités51
      • 4.2 Types de commandes Git52
      • 4.2.1 Les commandes de porcelaine52
      • 4.2.2 Les commandes de plomberie53
      • 5. Configuration requise53
      • 5.1 Configurer le nom de l'utilisateur53
      • 5.2 Configurer l'e-mail de l'utilisateur54
      • Chapitre 3
      • Création d'un dépôt
      • 1. Créer un dépôt local55
      • 2. Le contenu du dossier .git56
      • 3. Le fichier README58
      • 4. Markdown59
      • 4.1 Présentation59
      • 4.2 Eléments de syntaxe61
      • 4.2.1 Titres61
      • 4.2.2 Listes non ordonnées61
      • 4.2.3 Listes ordonnées61
      • 4.2.4 Mettre en gras62
      • 4.2.5 Mettre en italique62
      • 4.2.6 Ligne horizontale62
      • 4.2.7 Code62
      • 4.2.8 Tableaux63
      • 4.2.9 Liens63
      • 4.2.10 Notes de bas de page63
      • 5. reStructuredText64
      • 5.1 Présentation64
      • 5.2 Éléments de syntaxe64
      • 5.2.1 Titres64
      • 5.2.2 Listes autonumérotées65
      • 5.3 Logiciels66
      • 6. Outils pour travailler avec Markdown66
      • 6.1 Sublime Text66
      • 6.2 Texts67
      • 6.3 Ulysses68
      • 7. Configurer le dépôt local69
      • 7.1 Configuration minimale69
      • 7.2 Niveaux de configuration70
      • 7.2.1 Le niveau système70
      • 7.2.2 Le niveau utilisateur70
      • 7.2.3 Le niveau dépôt71
      • 7.3 Les paramètres configurables71
      • 7.3.1 Définir l'éditeur de texte71
      • 7.3.2 Modèle de commit71
      • 7.3.3 Ignorer des fichiers72
      • 7.3.4 Hashs abrégés72
      • 7.4 Définition d'alias Git73
      • 8. Les options de configuration avancées74
      • 8.1 Pagination74
      • 8.2 Expressions régulières étendues74
      • 8.3 Séparateur de mots74
      • 8.4 Ancêtre commun des conflits75
      • 8.5 Configurer le cache de l'authentification75
      • 1. Gestion des fichiers et commit77
      • 2. Une histoire de hash78
      • 2.1 Une identification par contenu79
      • 2.2 Risque de collision79
      • 2.3 Fonctionnalité expérimentale de hash SHA2-25680
      • 3. Les trois zones d'un fichier81
      • 3.1 Le répertoire de travail82
      • 3.2 L'index84
      • 3.3 Le dépôt85
      • 4. Manipuler les fichiers88
      • 4.1 Ajouter des fichiers dans l'index88
      • 4.2 Déplacer ou renommer des fichiers89
      • 4.3 Supprimer des fichiers90
      • 4.4 Arrêter de suivre un fichier91
      • 4.5 Ignorer des fichiers91
      • 5. Commiter ou enregistrer des modifications93
      • 5.1 Effectuer un premier commit93
      • 5.2 Rédiger un bon message de commit95
      • 5.2.1 Les règles d'un message de commit95
      • 5.2.2 Méthode pour le titre96
      • 5.2.3 En quelle langue ?98
      • Chapitre 5
      • Consultation et manipulation de l'historique
      • 1. Lister les commits avec git log99
      • 1.1 Limiter le nombre de commits affichés101
      • 1.2 Afficher les statistiques102
      • 1.3 Afficher chaque commit sur une seule ligne103
      • 1.4 Filtrer les commits chronologiquement103
      • 1.5 Filtrer les commits selon les intervenants104
      • 1.6 Afficher le graphique des branches105
      • 1.7 Spécifier un format de sortie106
      • 1.8 Prendre en compte les merges108
      • 1.9 Lister les commits impactant un fichier109
      • 1.10 Afficher des dates plus lisibles110
      • 2. Afficher les différences de contenu110
      • 2.1 Différences en cours dans le répertoire111
      • 2.2 Différences entre l'index et HEAD112
      • 2.3 Différences entre le répertoire de travail et HEAD113
      • 2.4 Différences introduites par un ou plusieurs commits113
      • 2.5 Différences de mots114
      • 2.6 Visualiser les blocs de code déplacés115
      • 3. Identifier l'auteur d'une ligne de code116
      • 4. Rechercher des commits avec le mode pick axe117
      • 5. Supprimer les modifications du répertoire de travail118
      • 6. Supprimer les modifications de l'index119
      • 7. Revenir à un état antérieur120
      • 8. Modifier le dernier commit121
      • 9. Afficher un résumé des commits122
      • Chapitre 6
      • Les branches et les tags
      • 1. Les tags125
      • 1.1 Numérotation des versions125
      • 1.2 Différents types de tags126
      • 1.3 Création des tags127
      • 1.4 Création d'un tag annoté127
      • 1.5 Liste des tags128
      • 1.6 Détails d'un tag128
      • 1.7 Envoi des tags vers le dépôt distant129
      • 1.8 Suppression d'un tag130
      • 2. Les branches131
      • 2.1 Liste des branches existantes133
      • 2.2 Création d'une branche135
      • 2.3 Positionnement sur une branche137
      • 2.4 Fusionner deux branches139
      • 2.4.1 L'avance rapide140
      • 2.4.2 Nettoyer votre dépôt143
      • 2.4.3 Les conflits de fusion143
      • 2.5 Supprimer une branche151
      • 2.6 Rebaser une branche dans une autre152
      • Chapitre 7
      • Partager un dépôt
      • 1. Qu'est-ce qu'un dépôt distant ?157
      • 2. Créer un dépôt distant159
      • 2.1 Pour un nouveau projet159
      • 2.2 Pour un projet existant160
      • 3. Cloner un dépôt distant161
      • 4. Les protocoles d'échange162
      • 5. Fonctionnement interne et branches distantes163
      • 5.1 Les dépôts distants liés164
      • 5.2 Les branches distantes suivies164
      • 6. Envoyer ses modifications165
      • 7. Recevoir les modifications167
      • Chapitre 8
      • Git-Flow : workflow d'entreprise
      • 1. Un système de gestion des branches173
      • 1.1 Les branches éternelles174
      • 1.1.1 La branche de production (master)174
      • 1.1.2 La branche de développement (develop)175
      • 1.2 Les branches éphémères175
      • 1.2.1 Les branches de versions (release)175
      • 1.2.2 Les branches de correctifs (hotfix)176
      • 1.2.3 Les branches de fonctionnalités (feature)176
      • 1.2.4 Plusieurs commits dans une branche éphémère ?177
      • 2. Exemple de workflow178
      • 3. Git-Flow intuitif grâce à Tower180
      • 3.1 Client Git et Git-Flow180
      • 3.2 Cas pratique d'utilisation181
      • Chapitre 9
      • Les outils de Git
      • 1. Mettre de côté des modifications avec git stash189
      • 2. Dépôts intégrés avec submodules192
      • 2.1 Ajout du dépôt intégré194
      • 2.2 Cloner un dépôt et ses dépôts intégrés197
      • 2.3 Modification des dépôts intégrés197
      • 2.4 Supprimer un dépôt intégré198
      • 2.5 Inconvénients des dépôts intégrés199
      • 3. Retrouver un commit erroné200
      • 3.1 Utilisation pratique de git bisect201
      • 3.2 Automatiser git bisect202
      • 4. Journal des références (reflog)204
      • 5. Les hooks205
      • 5.1 Les différents types de hooks206
      • 5.2 Comment utiliser les hooks ?207
      • 5.3 Exemple de hook : validation de message208
      • 5.4 Partager les hooks dans le dépôt209
      • 6. Les notes Git209
      • 6.1 Créer une note210
      • 6.2 Afficher les notes210
      • 6.2.1 Lister les notes210
      • 6.2.2 Consulter les notes d'un commit211
      • 6.3 Editer une note211
      • 6.4 Supprimer une note212
      • 6.5 Envoyer les notes vers le serveur212
      • Chapitre 10
      • Scénario de développeur indépendant
      • 1. But de ce chapitre213
      • 2. Contexte du scénario214
      • 3. Création du dépôt215
      • 4. Début du développement215
      • 5. Enregistrer des modifications218
      • 6. Bitbucket219
      • 6.1 Création d'un compte221
      • 6.2 Envoyer un dépôt local vers Bitbucket225
      • 6.3 Editer un fichier sur Bitbucket226
      • 6.4 Récupérer les modifications du dépôt distant227
      • 7. Intégrer un nouveau développement228
      • 7.1 Vérifier son code avant l'indexation229
      • 7.2 Commiter le nouveau développement229
      • 8. Annuler les modifications d'un fichier230
      • 9. .gitignore : ignorer une bibliothèque230
      • 10. Commiter tous les fichiers ajoutés ou modifiés233
      • 11. Envoyer les commits au dépôt distant235
      • 12. Afficher les différences entre deux commits235
      • 13. Cloner le dépôt distant236
      • 14. Une branche, ça sert à quoi ?237
      • 15. Changer de branche241
      • 16. Fusionner deux branches242
      • Chapitre 11
      • Scénario d'équipe
      • 1. Contexte du scénario245
      • 2. Aperçu du projet246
      • 2.1 Installation de Python247
      • 2.2 Récupération du dépôt248
      • 2.3 Installation des dépendances Python248
      • 2.4 Initialisation des dépôts intégrés248
      • 2.5 Génération des bibliothèques249
      • 2.6 Création du fichier de configuration250
      • 2.7 Création de la base250
      • 2.8 Création d'un compte root251
      • 2.9 Lancement du serveur251
      • 3. Installation de GitLab252
      • 4. Création des comptes utilisateurs254
      • 5. Création du projet255
      • 6. Attribuer des projets aux utilisateurs258
      • 7. Premier commit du projet259
      • 7.1 Rédaction du fichier .gitignore259
      • 7.1.1 Ignorer les bibliothèques260
      • 7.1.2 Ignorer les fichiers propres à la technologie260
      • 7.1.3 Ignorer les données sensibles260
      • 7.1.4 Ajouter les dépôts intégrés261
      • 7.1.5 Le fichier README262
      • 7.2 Commit du projet262
      • 7.3 Création de la branche develop pour Git-Flow262
      • 8. Phase de développement263
      • 8.1 Fonctionnalité graphique263
      • 8.2 Correctif de temps négatif264
      • 8.3 Intégration du correctif265
      • 8.4 Fonctionnalité type de tâche266
      • 8.5 Finalisation des graphiques266
      • 8.6 Finalisation des types de tâche268
      • 8.7 Création de la branche de version268
      • 8.8 Export CSV269
      • 8.9 Correctif de version269
      • 8.10 Nouvelle version stable270
      • 8.11 Finalisation de l'export CSV271
      • 9. Mise en ligne du dépôt sur GitHub271
      • 9.1 Création d'un compte GitHub272
      • 9.2 Création d'un dépôt274
      • 9.3 Ajout du remote au dépôt local274
      • 9.4 Envoi des branches275
      • 9.5 Le fichier LICENSE275
      • 9.6 Le fichier README275
      • Chapitre 12
      • Productivité maximale avec Git
      • 1. Alias prêts à l'emploi277
      • 1.1 Alias simples278
      • 1.1.1 git last278
      • 1.1.2 git aa278
      • 1.1.3 git bv278
      • 1.1.4 git ba279
      • 1.1.5 git bd279
      • 1.1.6 git bdp279
      • 1.1.7 git ca280
      • 1.1.8 git cb280
      • 1.1.9 git cmf280
      • 1.1.10 git co281
      • 1.1.11 git di281
      • 1.1.12 git dc281
      • 1.1.13 git mnff282
      • 1.1.14 git st282
      • 1.1.15 git tg284
      • 1.1.16 git pu284
      • 1.1.17 git ss284
      • 1.1.18 git ssu284
      • 1.1.19 git sr285
      • 1.1.20 git srp285
      • 1.1.21 git sl285
      • 1.1.22 git sp285
      • 1.1.23 git sa286
      • 1.1.24 git sd_f286
      • 1.1.25 git sb286
      • 1.1.26 git na287
      • 1.1.27 git nl287
      • 1.1.28 git napp287
      • 1.1.29 git ne287
      • 1.1.30 git ns288
      • 1.1.31 git nr288
      • 1.1.32 git ready288
      • 1.2 Alias complexes289
      • 1.2.1 git bnew289
      • 1.2.2 git bold290
      • 1.2.3 git ll290
      • 1.2.4 git ld291
      • 1.2.5 git ls292
      • 1.2.6 git ln293
      • 1.2.7 git slv293
      • 1.2.8 git np294
      • 1.2.9 git bvn294
      • 1.2.10 git churn295
      • 1.2.11 git srr295
      • 1.2.12 git spr295
      • 1.2.13 git sar296
      • 1.2.14 git sdr296
      • 1.3 Récupérer les alias sur GitHub296
      • 2. Commandes prêtes à l'emploi299
      • 2.1 Commandes liées à la configuration299
      • 2.1.1 Fichier de configuration actif pour une option299
      • 2.1.2 Afficher sa configuration299
      • 2.1.3 Éditer facilement un niveau de configuration300
      • 2.2 Commandes d'affichage300
      • 2.2.1 Afficher les informations techniques d'un commit300
      • 2.2.2 Afficher les parents des commits301
      • 2.2.3 Afficher les fichiers en conflit302
      • 2.2.4 Afficher la liste des fichiers modifiés302
      • 2.2.5 Afficher l'ancêtre commun302
      • 2.2.6 Afficher le premier commit d'une branche303
      • 2.2.7 Utiliser git show en masquant le diff303
      • 2.2.8 Vérifier une branche sur un dépôt distant303
      • 2.2.9 Fusionner des branches sans ancêtre commun303
      • 2.2.10 Afficher les dépôts distants et leur lien externe304
      • 2.2.11 Afficher les fichiers modifiés par un commit304
      • 2.2.12 Afficher le chemin du dépôt versionné304
      • 2.2.13 Consulter l'historique des commandes git305
      • 2.2.14 Afficher le nombre de commits par auteur305
      • 2.2.15 Afficher le nombre de commits d'un auteur305
      • 2.2.16 Afficher la dernière date de modification des branches306
      • 2.2.17 Lister les branches contenant un commit précis306
      • 2.2.18 Afficher l'historique avec les diff307
      • 2.2.19 Chercher un texte/regex dans les commits307
      • 2.2.20 Chercher un texte/regex dans les stashes307
      • 2.2.21 Lister les commits des branches307
      • 2.2.22 Comparer un fichier antérieur310
      • 2.2.23 Afficher les branches déjà fusionnées dans master310
      • 2.2.24 Lister les branches non mergées dans master311
      • 2.2.25 Lister les commits d'une branche non mergée à master311
      • 2.3 Commandes de manipulation312
      • 2.3.1 Supprimer ou inverser les modifications d'un commit312
      • 2.3.2 Supprimer du dépôt les fichiers déjà supprimés du projet312
      • 2.3.3 Retirer des modifications de l'index313
      • 2.3.4 Récupérer le fichier d'un autre commit313
      • 2.3.5 Supprimer les fichiers non suivis du répertoire313
      • 2.3.6 Supprimer les modifications des fichiers suivis314
      • 2.3.7 Supprimer une branche distante314
      • Chapitre 13
      • Git en déploiement continu
      • 1. Objectifs du chapitre315
      • 2. Le projet316
      • 3. Présentation de Django316
      • 4. Développement de la version initiale318
      • 4.1 Installation318
      • 4.2 Création du projet319
      • 4.2.1 Création du projet Django319
      • 4.2.2 Création du fichier .gitignore320
      • 4.2.3 Enregistrement des bibliothèques Python321
      • 4.2.4 Premier commit321
      • 4.3 Création des applications users et articles322
      • 4.4 Création des modèles Django324
      • 4.4.1 Le modèle BaseModel325
      • 4.4.2 Le modèle User326
      • 4.4.3 Le modèle Article327
      • 4.5 Mise en place du module d'administration329
      • 4.5.1 Démarrer le serveur de développement331
      • 4.5.2 Création des pages utilisateur332
      • 4.5.3 Templates parents332
      • 4.5.4 Liste des articles336
      • 4.5.5 Page de consultation d'un article339
      • 4.5.6 Page « À propos »341
      • 5. Déploiement initial342
      • 5.1 Configuration des identifiants SSH343
      • 5.2 Création du site web Webfaction343
      • 5.3 Création des applications Webfaction344
      • 5.4 Création de la base de données346
      • 5.5 Externalisation du dépôt de la configuration347
      • 5.6 Préparer le dossier du projet et créer le dépôt348
      • 5.7 Configuration du dépôt en déploiement automatisé349
      • 5.8 Configuration du remote et premier push349
      • 5.9 Création de l'environnement virtuel350
      • 5.10 Configuration d'Apache351
      • 5.11 Envoi de la configuration de production351
      • 5.12 Exécuter les migrations352
      • 5.13 Synchroniser les fichiers statiques352
      • 5.14 Redémarrer Apache352
      • 6. Déploiement automatisé353
      • 6.1 Développement du hook dans le dépôt353
      • 6.2 Configuration du dépôt distant354
      • 7. Fonctionnalité : champ WYSIWYG pour l'article355
      • 7.1 Développement355
      • 7.2 Déploiement automatisé360
      • Chapitre 14
      • Aide-mémoire
      • 1. Les références361
      • 1.1 HEAD361
      • 1.2 Les branches362
      • 1.3 Les tags362
      • 1.4 Référence des ancêtres362
      • 2. Les commandes363
      • 2.1 git add363
      • 2.2 git archive364
      • 2.3 git bisect364
      • 2.4 git blame365
      • 2.5 git branch366
      • 2.6 git checkout367
      • 2.7 git cherry-pick368
      • 2.8 git clean368
      • 2.9 git clone369
      • 2.10 git commit370
      • 2.11 git config371
      • 2.12 git diff372
      • 2.13 git fetch373
      • 2.14 git gc373
      • 2.15 git help374
      • 2.16 git init374
      • 2.17 git log375
      • 2.18 git merge376
      • 2.19 git mv376
      • 2.20 git pull377
      • 2.21 git push377
      • 2.22 git rebase378
      • 2.23 git reflog379
      • 2.24 git remote379
      • 2.25 git reset380
      • 2.26 git revert381
      • 2.27 git rm381
      • 2.28 git show382
      • 2.29 git stash382
      • 2.30 git submodule383
      • 2.31 git tag384
      • 3. GitHub385
      • 3.1 Gestion des dépôts385
      • 3.2 GitHub-Flow (fork et pull request)388
      • 3.3 Les « issues » GitHub392
      • Index403

  • Origine de la notice:
    • BPI
  • Disponible - 681.2 DAU

    Niveau 3 - Informatique