1. Livres et vidéos
  2. Git - Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (2e édition)

Git Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques) (2e édition)

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

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 œuvre 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 GitLab, 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.

Cette nouvelle édition s'enrichit d'un chapitre qui 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 les 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.

Un aide-mémoire en annexe permet de visualiser rapidement les principales commandes et leurs principales options.



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Avant-propos
    • 1. À qui s’adresse cet ouvrage ?
    • 2. Objectifs de l'ouvrage
    • 3. Prérequis
    • 4. Progression
    • 5. Détail des chapitres
    • 6. Un point sur les langues
    • 7. Remerciements
    • 8. Introduction à Git
  • Git et la gestion de version
    • 1. La gestion de version
    • 2. Les intérêts de la gestion de version
      • 2.1 Une véritable machine à remonter le temps
      • 2.2 Une documentation détaillée et datée
      • 2.3 Une pierre de Rosette pour collaborer
    • 3. Histoire de la gestion de version
      • 3.1 Systèmes de gestion de versions locaux
      • 3.2 Systèmes de gestion de versions centralisés
      • 3.3 Systèmes de gestion de versions décentralisés
    • 4. Pourquoi Git ?
  • Installation de Git
    • 1. Installation sous Linux
      • 1.1 Installation à partir de paquets préexistants
      • 1.2 Installation à partir des sources
    • 2. Installation sous Mac OS X
    • 3. Installation sous Windows
    • 4. L’aide de Git
      • 4.1 Généralités
      • 4.2 Types de commandes Git
        • 4.2.1 Les commandes de porcelaine
        • 4.2.2 Les commandes de plomberie
    • 5. Configuration requise
      • 5.1 Configurer le nom de l'utilisateur
      • 5.2 Configurer l'e-mail de l'utilisateur
  • Création d’un dépôt
    • 1. Créer un dépôt local
    • 2. Le contenu du dossier .git
    • 3. Le fichier README
    • 4. Markdown
      • 4.1 Présentation
      • 4.2 Éléments de syntaxe
        • 4.2.1 Titres
        • 4.2.2 Listes non ordonnées
        • 4.2.3 Listes ordonnées
        • 4.2.4 Mettre en gras
        • 4.2.5 Mettre en italique
        • 4.2.6 Ligne horizontale
        • 4.2.7 Code
        • 4.2.8 Tableaux
        • 4.2.9 Liens
        • 4.2.10 Notes de bas de page
    • 5. reStructuredText
      • 5.1 Présentation
      • 5.2 Éléments de syntaxe
        • 5.2.1 Titres
        • 5.2.2 Listes autonumérotées
      • 5.3 Logiciels
    • 6. Outils pour travailler avec Markdown
      • 6.1 Sublime Text
      • 6.2 Texts
      • 6.3 Ulysses
    • 7. Configurer le dépôt local
      • 7.1 Configuration minimale
      • 7.2 Niveaux de configuration
        • 7.2.1 Le niveau système
        • 7.2.2 Le niveau utilisateur
        • 7.2.3 Le niveau dépôt
      • 7.3 Les paramètres configurables
        • 7.3.1 Définir l'éditeur de texte
        • 7.3.2 Modèle de commit
        • 7.3.3 Ignorer des fichiers
        • 7.3.4 Hashs abrégés
      • 7.4 Définition d'alias Git
    • 8. Les options de configuration avancées
      • 8.1 Pagination
      • 8.2 Expressions régulières étendues
      • 8.3 Séparateur de mots
      • 8.4 Ancêtre commun des conflits
  • Manipulation des fichiers et commit
    • 1. Gestion des fichiers et commit
    • 2. Une histoire de hash
      • 2.1 Une identification par contenu
      • 2.2 Risque de collision
    • 3. Les trois zones d’un fichier
      • 3.1 Le répertoire de travail
      • 3.2 L'index
      • 3.3 Le dépôt
    • 4. Manipuler les fichiers
      • 4.1 Ajouter des fichiers dans l'index
      • 4.2 Déplacer ou renommer des fichiers
      • 4.3 Supprimer des fichiers
      • 4.4 Arrêter de suivre un fichier
      • 4.5 Ignorer des fichiers
    • 5. Commiter ou enregistrer des modifications
      • 5.1 Effectuer un premier commit
      • 5.2 Rédiger un bon message de commit
        • 5.2.1 Les règles d'un message de commit
        • 5.2.2 Méthode pour le titre
        • 5.2.3 En quelle langue ?
  • Consultation et manipulation de l’historique
    • 1. Lister les commits avec git log
      • 1.1 Limiter le nombre de commits affichés
      • 1.2 Afficher les statistiques
      • 1.3 Afficher chaque commit sur une seule ligne
      • 1.4 Filtrer les commits chronologiquement
      • 1.5 Filtrer les commits selon les intervenants
      • 1.6 Afficher le graphique des branches
      • 1.7 Spécifier un format de sortie
      • 1.8 Prendre en compte les merges
      • 1.9 Lister les commits impactant un fichier
    • 2. Afficher les différences de contenu
      • 2.1 Différences en cours dans le répertoire
      • 2.2 Différences entre l'index et HEAD
      • 2.3 Différences entre le répertoire de travail et HEAD
      • 2.4 Différences introduites par un ou plusieurs commits
      • 2.5 Différences de mots
    • 3. Identifier l’auteur d’une ligne de code
    • 4. Rechercher des commits avec le mode pick axe
    • 5. Supprimer les modifications du répertoire de travail
    • 6. Supprimer les modifications de l'index
    • 7. Revenir à un état antérieur
    • 8. Modifier le dernier commit
  • Les branches et les tags
    • 1. Les tags
      • 1.1 Numérotation des versions
      • 1.2 Différents types de tags
      • 1.3 Création des tags
      • 1.4 Création d’un tag annoté
      • 1.5 Liste des tags
      • 1.6 Détails d’un tag
      • 1.7 Envoi des tags vers le dépôt distant
      • 1.8 Suppression d’un tag
    • 2. Les branches
      • 2.1 Liste des branches existantes
      • 2.2 Création d’une branche
      • 2.3 Positionnement sur une branche
      • 2.4 Fusionner deux branches
        • 2.4.1 L'avance rapide
        • 2.4.2 Nettoyer votre dépôt
        • 2.4.3 Les conflits de fusion
      • 2.5 Supprimer une branche
      • 2.6 Rebaser une branche dans une autre
  • Partager un dépôt
    • 1. Qu'est-ce qu'un dépôt distant ?
    • 2. Créer un dépôt distant
      • 2.1 Pour un nouveau projet
      • 2.2 Pour un projet existant
    • 3. Cloner un dépôt distant
    • 4. Les protocoles d'échange
    • 5. Fonctionnement interne et branches distantes
      • 5.1 Les dépôts distants liés
      • 5.2 Les branches distantes suivies
    • 6. Envoyer ses modifications
    • 7. Recevoir les modifications
  • Git-Flow : workflow d’entreprise
    • 1. Un système de gestion des branches
      • 1.1 Les branches éternelles
        • 1.1.1 La branche de production (master)
        • 1.1.2 La branche de développement (develop)
      • 1.2 Les branches éphémères
        • 1.2.1 Les branches de versions (release)
        • 1.2.2 Les branches de correctifs (hotfix)
        • 1.2.3 Les branches de fonctionnalités (feature)
        • 1.2.4 Plusieurs commits dans une branche éphémère ?
    • 2. Exemple de workflow
    • 3. Git-Flow intuitif grâce à Tower
      • 3.1 Client Git et Git-Flow
      • 3.2 Cas pratique d’utilisation
  • Les outils de Git
    • 1. Mettre de côté des modifications avec git stash
    • 2. Dépôts intégrés avec submodules
      • 2.1 Ajout du dépôt intégré
      • 2.2 Cloner un dépôt et ses dépôts intégrés
      • 2.3 Modification des dépôts intégrés
      • 2.4 Supprimer un dépôt intégré
      • 2.5 Inconvénients des dépôts intégrés
    • 3. Retrouver un commit erroné
      • 3.1 Utilisation pratique de git bisect
      • 3.2 Automatiser git bisect
    • 4. Journal des références (reflog)
    • 5. Les hooks
      • 5.1 Les différents types de hooks
      • 5.2 Comment utiliser les hooks ?
      • 5.3 Exemple de hook : validation de message
      • 5.4 Partager les hooks dans le dépôt
    • 6. Les notes Git
      • 6.1 Créer une note
      • 6.2 Afficher les notes
        • 6.2.1 Lister les notes
        • 6.2.2 Consulter les notes d'un commit
      • 6.3 Éditer une note
      • 6.4 Supprimer une note
      • 6.5 Envoyer les notes vers le serveur
  • Scénario de développeur indépendant
    • 1. But de ce chapitre
    • 2. Contexte du scénario
    • 3. Création du dépôt
    • 4. Début du développement
    • 5. Enregistrer des modifications
    • 6. Bitbucket
      • 6.1 Création d'un compte
      • 6.2 Envoyer un dépôt local vers Bitbucket
      • 6.3 Éditer un fichier sur Bitbucket
      • 6.4 Récupérer les modifications du dépôt distant
    • 7. Intégrer un nouveau développement
      • 7.1 Vérifier son code avant l'indexation
      • 7.2 Commiter le nouveau développement
    • 8. Annuler les modifications d'un fichier
    • 9. .gitignore : ignorer une bibliothèque
    • 10. Commiter tous les fichiers ajoutés ou modifiés
    • 11. Envoyer les commits au dépôt distant
    • 12. Afficher les différences entre deux commits
    • 13. Cloner le dépôt distant
    • 14. Une branche, ça sert à quoi ?
    • 15. Changer de branche
    • 16. Fusionner deux branches
  • Scénario d’équipe
    • 1. Contexte du scénario
    • 2. Aperçu du projet
      • 2.1 Installation de Python
      • 2.2 Récupération du dépôt
      • 2.3 Installation des dépendances Python
      • 2.4 Initialisation des dépôts intégrés
      • 2.5 Génération des bibliothèques
      • 2.6 Création du fichier de configuration
      • 2.7 Création de la base
      • 2.8 Création d'un compte root
      • 2.9 Lancement du serveur
    • 3. Installation de GitLab
    • 4. Création des comptes utilisateurs
    • 5. Création du projet
    • 6. Attribuer des projets aux utilisateurs
    • 7. Premier commit du projet
      • 7.1 Rédaction du fichier .gitignore
        • 7.1.1 Ignorer les bibliothèques
        • 7.1.2 Ignorer les fichiers propres à la technologie
        • 7.1.3 Ignorer les données sensibles
        • 7.1.4 Ajouter les dépôts intégrés
        • 7.1.5 Le fichier README
      • 7.2 Commit du projet
      • 7.3 Création de la branche develop pour Git-Flow
    • 8. Phase de développement
      • 8.1 Fonctionnalité graphique
      • 8.2 Correctif de temps négatif
      • 8.3 Intégration du correctif
      • 8.4 Fonctionnalité type de tâche
      • 8.5 Finalisation des graphiques
      • 8.6 Finalisation des types de tâche
      • 8.7 Création de la branche de version
      • 8.8 Export CSV
      • 8.9 Correctif de version
      • 8.10 Nouvelle version stable
      • 8.11 Finalisation de l’export CSV
    • 9. Mise en ligne du dépôt sur GitHub
      • 9.1 Création d'un compte GitHub
      • 9.2 Création d'un dépôt
      • 9.3 Ajout du remote au dépôt local
      • 9.4 Envoi des branches
      • 9.5 Le fichier LICENSE
      • 9.6 Le fichier README
  • Productivité maximale avec Git
    • 1. Alias prêts à l'emploi
      • 1.1 Alias simples
        • 1.1.1 git last
        • 1.1.2 git aa
        • 1.1.3 git bv
        • 1.1.4 git ba
        • 1.1.5 git bd
        • 1.1.6 git ca
        • 1.1.7 git cb
        • 1.1.8 git cmf
        • 1.1.9 git co
        • 1.1.10 git di
        • 1.1.11 git dc
        • 1.1.12 git mnff
        • 1.1.13 git st
        • 1.1.14 git tg
        • 1.1.15 git pu
        • 1.1.16 git ss
        • 1.1.17 git ssu
        • 1.1.18 git sr
        • 1.1.19 git srp
        • 1.1.20 git sl
        • 1.1.21 git sp
        • 1.1.22 git sa
        • 1.1.23 git sd_f
        • 1.1.24 git sb
        • 1.1.25 git na
        • 1.1.26 git nl
        • 1.1.27 git napp
        • 1.1.28 git ne
        • 1.1.29 git ns
        • 1.1.30 git nr
        • 1.1.31 git ready
      • 1.2 Alias complexes
        • 1.2.1 git bdate
        • 1.2.2 git ll
        • 1.2.3 git ld
        • 1.2.4 git ls
        • 1.2.5 git ln
        • 1.2.6 git np
        • 1.2.7 git bvn
        • 1.2.8 git churn
        • 1.2.9 git srr
        • 1.2.10 git spr
        • 1.2.11 git sdr
      • 1.3 Récupérer les alias sur GitHub
    • 2. Commandes prêtes à l’emploi
      • 2.1 Commandes liées à la configuration
        • 2.1.1 Fichier de configuration actif pour une option
        • 2.1.2 Afficher sa configuration
        • 2.1.3 Éditer facilement un niveau de configuration
      • 2.2 Commandes d'affichage
        • 2.2.1 Afficher les informations techniques d'un commit
        • 2.2.2 Afficher les parents des commits
        • 2.2.3 Afficher les fichiers en conflit
        • 2.2.4 Afficher la liste des fichiers modifiés
        • 2.2.5 Afficher l'ancêtre commun
        • 2.2.6 Afficher le premier commit d'une branche
        • 2.2.7 Utiliser git show en masquant le diff
        • 2.2.8 Vérifier une branche sur un dépôt distant
        • 2.2.9 Fusionner des branches sans ancêtre commun
        • 2.2.10 Afficher les dépôts distants et leur lien externe
        • 2.2.11 Afficher les fichiers modifiés par un commit
        • 2.2.12 Afficher le chemin du dépôt versionné
        • 2.2.13 Consulter l'historique des commandes git
        • 2.2.14 Afficher le nombre de commits par auteur
        • 2.2.15 Afficher le nombre de commits d'un auteur
        • 2.2.16 Afficher la dernière date de modification des branches
        • 2.2.17 Lister les branches contenant un commit précis
        • 2.2.18 Afficher l'historique avec les diff
        • 2.2.19 Chercher un texte/regex dans les commits
        • 2.2.20 Chercher un texte/regex dans les stashes
        • 2.2.21 Lister les commits des branches
        • 2.2.22 Comparer un fichier antérieur
        • 2.2.23 Afficher les branches déjà fusionnées dans master
        • 2.2.24 Lister les branches non mergées dans master
        • 2.2.25 Lister les commits d'une branche non mergée à master
      • 2.3 Commandes de manipulation
        • 2.3.1 Supprimer ou inverser les modifications d'un commit
        • 2.3.2 Supprimer du dépôt les fichiers déjà supprimés du projet
        • 2.3.3 Retirer des modifications de l'index
        • 2.3.4 Récupérer le fichier d'un autre commit
        • 2.3.5 Supprimer les fichiers non suivis du répertoire
        • 2.3.6 Supprimer les modifications des fichiers suivis
        • 2.3.7 Supprimer une branche distante
  • Git en déploiement continu
    • 1. Objectifs du chapitre
    • 2. Le projet
    • 3. Présentation de Django
    • 4. Développement de la version initiale
      • 4.1 Installation
      • 4.2 Création du projet
        • 4.2.1 Création du projet Django
        • 4.2.2 Création du fichier .gitignore
        • 4.2.3 Enregistrement des bibliothèques Python
        • 4.2.4 Premier commit
      • 4.3 Création des applications users et articles
      • 4.4 Création des modèles Django
        • 4.4.1 Le modèle BaseModel
        • 4.4.2 Le modèle User
        • 4.4.3 Le modèle Article
      • 4.5 Mise en place du module d'administration
        • 4.5.1 Démarrer le serveur de développement
        • 4.5.2 Création des pages utilisateur
        • 4.5.3 Templates parents
        • 4.5.4 Liste des articles
        • 4.5.5 Page de consultation d'un article
        • 4.5.6 Page "À propos"
    • 5. Déploiement initial
      • 5.1 Configuration des identifiants SSH
      • 5.2 Création du site web Webfaction
      • 5.3 Création des applications Webfaction
      • 5.4 Création de la base de données
      • 5.5 Externalisation du dépôt de la configuration
      • 5.6 Préparer le dossier du projet et créer le dépôt
      • 5.7 Configuration du dépôt en déploiement automatisé
      • 5.8 Configuration du remote et premier push
      • 5.9 Création de l'environnement virtuel
      • 5.10 Configuration d'Apache
      • 5.11 Envoi de la configuration de production
      • 5.12 Exécuter les migrations
      • 5.13 Synchroniser les fichiers statiques
      • 5.14 Redémarrer Apache
    • 6. Déploiement automatisé
      • 6.1 Développement du hook dans le dépôt
      • 6.2 Configuration du dépôt distant
    • 7. Fonctionnalité : champ WYSIWYG pour l'article
      • 7.1 Développement
      • 7.2 Déploiement automatisé
  • Aide-mémoire
    • 1. Les références
      • 1.1 HEAD
      • 1.2 Les branches
      • 1.3 Les tags
      • 1.4 Référence des ancêtres
    • 2. Les commandes
      • 2.1 git add
      • 2.2 git archive
      • 2.3 git bisect
      • 2.4 git blame
      • 2.5 git branch
      • 2.6 git checkout
      • 2.7 git cherry-pick
      • 2.8 git clean
      • 2.9 git clone
      • 2.10 git commit
      • 2.11 git config
      • 2.12 git diff
      • 2.13 git fetch
      • 2.14 git gc
      • 2.15 git help
      • 2.16 git init
      • 2.17 git log
      • 2.18 git merge
      • 2.19 git mv
      • 2.20 git pull
      • 2.21 git push
      • 2.22 git rebase
      • 2.23 git reflog
      • 2.24 git remote
      • 2.25 git reset
      • 2.26 git revert
      • 2.27 git rm
      • 2.28 git show
      • 2.29 git stash
      • 2.30 git submodule
      • 2.31 git tag
      • Index

Auteur

Samuel DAUZONEn savoir plus

Samuel DAUZON est développeur et chef de projet chez 3winfo. Également développeur indépendant sur des projets Python/Django et Ionic et passionné par la création d'outils innovants, il est le créateur de Je suis ma santé, une application dédiée aux nutritionnistes/diététiciens et à leurs patients. Déjà auteur des livres Meteor et Ionic aux Editions ENI et Django Essentials aux éditions Packt Publishing, il partage volontiers son expertise sur le développement web et sur Git, pour le plus grand bénéfice des lecteurs.

Caractéristiques

  • Niveau Expert
  • Nombre de pages 377 pages
  • Parution juin 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01910-4
    • EAN : 9782409019104
    • Ref. ENI : EP2GIT
  • Niveau Expert
  • Parution juin 2019
    • HTML
    • ISBN : 978-2-409-01911-1
    • EAN : 9782409019111
    • Ref. ENI : LNEP2GIT

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (205 Ko)