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 [...]
[lire le résumé du livre]
Auteur : Samuel DAUZON
Editeur : Eni
Collection : Expert IT
Date parution : 04/2023 4e éditionCB Google/Apple Pay, Chèque, Virement
Quel est le sujet du livre "Git"
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.Téléchargements
Samuel DAUZON est développeur back-end chez Opendatasoft. 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 et sur Git, pour le plus grand bénéfice des lecteurs.
En suivant ce lien, retrouvez tous les livres dans la spécialité Progiciels.
Sommaire et contenu du livre "Git - Maîtrisez la gestion de vos versions (concepts, utilisation et cas pratiques)"
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.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.1 Présentation
- 5.2 Éléments de syntaxe
- 5.2.1 Titres
- 5.2.2 Listes autonumérotées
- 6.1 Sublime Text
- 6.2 Texts
- 6.3 Ulysses
- 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.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
- 8.1 Pagination
- 8.2 Expressions régulières étendues
- 8.3 Séparateur de mots
- 8.4 Ancêtre commun des conflits
- 8.5 Configurer le cache de l'authentification
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
- 2.3 Fonctionnalité expérimentale de hash SHA2-256
- 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
- 1.10 Afficher des dates plus lisibles
- 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
- 2.6 Visualiser les blocs de code déplacés
- 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
- 9. Afficher un résumé des commits
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.1 Les branches éternelles
- 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 ?
- 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.1 Rédaction du fichier .gitignore
- 7.2 Commit du projet
- 7.3 Création de la branche develop pour Git-Flow
- 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.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 bdp
- 1.1.7 git ca
- 1.1.8 git cb
- 1.1.9 git cmf
- 1.1.10 git co
- 1.1.11 git di
- 1.1.12 git dc
- 1.1.13 git mnff
- 1.1.14 git st
- 1.1.15 git tg
- 1.1.16 git pu
- 1.1.17 git ss
- 1.1.18 git ssu
- 1.1.19 git sr
- 1.1.20 git srp
- 1.1.21 git sl
- 1.1.22 git sp
- 1.1.23 git sa
- 1.1.24 git sd_f
- 1.1.25 git sb
- 1.1.26 git na
- 1.1.27 git nl
- 1.1.28 git napp
- 1.1.29 git ne
- 1.1.30 git ns
- 1.1.31 git nr
- 1.1.32 git ready
- 1.1 Alias simples
- 1.2 Alias complexes
- 1.2.1 git bnew
- 1.2.2 git bold
- 1.2.3 git ll
- 1.2.4 git ld
- 1.2.5 git ls
- 1.2.6 git ln
- 1.2.7 git slv
- 1.2.8 git np
- 1.2.9 git bvn
- 1.2.10 git churn
- 1.2.11 git srr
- 1.2.12 git spr
- 1.2.13 git sar
- 1.2.14 git sdr
- 1.3 Récupérer les alias sur GitHub
- 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.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.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.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.1 Développement du hook dans le dépôt
- 6.2 Configuration du dépôt distant
- 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
- 3. GitHub
- 3.1 Gestion des dépôts
- 3.2 GitHub-Flow (fork et pull request)
- 3.3 Les "issues" GitHub
- Index