-
1. DĂ©marrage rapide
-
2. Les bases de Git
-
3. Les branches avec Git
-
4. Git sur le serveur
- 4.1 Protocoles
- 4.2 Installation de Git sur un serveur
- 4.3 Génération des clés publiques SSH
- 4.4 Mise en place du serveur
- 4.5 DĂ©mon (Daemon) Git
- 4.6 HTTP intelligent
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Git hébergé
- 4.10 Résumé
-
5. Git distribué
-
6. GitHub
-
7. Utilitaires Git
- 7.1 SĂ©lection des versions
- 7.2 Indexation interactive
- 7.3 Remisage et nettoyage
- 7.4 Signer votre travail
- 7.5 Recherche
- 7.6 RĂ©Ă©crire lâhistorique
- 7.7 Reset démystifié
- 7.8 Fusion avancée
- 7.9 Rerere
- 7.10 DĂ©boguer avec Git
- 7.11 Sous-modules
- 7.12 Empaquetage (bundling)
- 7.13 Replace
- 7.14 Stockage des identifiants
- 7.15 Résumé
-
8. Personnalisation de Git
- 8.1 Configuration de Git
- 8.2 Attributs Git
- 8.3 Crochets Git
- 8.4 Exemple de politique gérée par Git
- 8.5 Résumé
-
9. Git et les autres systĂšmes
- 9.1 Git comme client
- 9.2 Migration vers Git
- 9.3 Résumé
-
10. Les tripes de Git
- 10.1 Plomberie et porcelaine
- 10.2 Les objets de Git
- 10.3 Références Git
- 10.4 Fichiers groupés
- 10.5 La refspec
- 10.6 Les protocoles de transfert
- 10.7 Maintenance et récupération de données
- 10.8 Les variables dâenvironnement
- 10.9 Résumé
-
A1. Annexe A: Git dans dâautres environnements
- A1.1 Interfaces graphiques
- A1.2 Git dans Visual Studio
- A1.3 Git dans Visual Studio Code
- A1.4 Git dans IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git dans Sublime Text
- A1.6 Git dans Bash
- A1.7 Git dans Zsh
- A1.8 Git dans PowerShell
- A1.9 Résumé
-
A2. Annexe B: Embarquer Git dans vos applications
- A2.1 Git en ligne de commande
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Commandes Git
- A3.1 Installation et configuration
- A3.2 Obtention et création des projets
- A3.3 Capture dâinstantanĂ© basique
- A3.4 Création de branches et fusion
- A3.5 Partage et mise Ă jour de projets
- A3.6 Inspection et comparaison
- A3.7 DĂ©bogage
- A3.8 Patchs
- A3.9 Courriel
- A3.10 SystĂšmes externes
- A3.11 Administration
- A3.12 Commandes de plomberie
A1.1 Annexe A: Git dans dâautres environnements - Interfaces graphiques
Si vous avez lu le livre dans son intĂ©gralitĂ©, vous avez appris beaucoup sur son utilisation Ă partir de la ligne de commande. Vous pouvez travailler avec des fichiers locaux, connecter vos dĂ©pĂŽts avec dâautres Ă travers un rĂ©seau et travailler efficacement avec dâautres personnes. Mais lâhistoire ne sâarrĂȘte pas ici ; Git est habituellement utilisĂ© comme sous-partie dâun Ă©cosystĂšme plus grand et le terminal nâest pas toujours le meilleur moyen dâinteragir dans ce cadre. Nous allons maintenant jeter un Ćil Ă certains des autres types dâenvironnements oĂč Git sâavĂšre utile ainsi que la maniĂšre dont dâautres applications (dont la vĂŽtre) intĂšgrent Git.
Interfaces graphiques
Lâenvironnement natif de Git est le terminal. Les nouvelles fonctionnalitĂ©s y apparaissent en premier et câest seulement Ă la ligne de commande que vous disposez de tout le pouvoir de Git. Mais le texte pur nâest pas toujours le meilleur choix pour toutes les tĂąches ; quelques fois, une reprĂ©sentation visuelle est prĂ©fĂ©rable et certains utilisateurs sont beaucoup plus Ă lâaise avec une interface pointer-cliquer.
Il est important de noter que diffĂ©rentes interfaces sont adaptĂ©es Ă diffĂ©rents modes de travail. Certains clients nâexposent quâune partie soigneusement choisie des fonctionnalitĂ©s de Git, pour supporter une façon spĂ©cifique de travailler que lâauteur considĂšre efficace. Vu sous cet angle, aucun outil ne peut ĂȘtre qualifiĂ© de « meilleur » quâun autre, il est simplement plus adaptĂ© Ă lâutilisation dĂ©sirĂ©e. Il faut remarquer aussi quâil nây rien que ces outils graphiques ne fassent que lâinterface en ligne de commande ne puisse faire ; la ligne de commande reste lâinterface qui vous donne le plus de puissance et de contrĂŽle sur vos dĂ©pĂŽts.
gitk
et git-gui
Quand vous installez Git, vous obtenez aussi ses outils visuels, gitk
et git-gui
.
gitk
est lâoutil de visualisation graphique dâhistorique.
Voyez-le comme une interface GUI puissante par-dessus git log
et git grep
.
Câest lâoutil Ă utiliser lorsque vous essayez de trouver un Ă©vĂ©nement passĂ© ou de visualiser lâhistorique de votre projet.
Gitk est plus facile à invoquer depuis la ligne de commande. Positionnez-vous simplement dans le dépÎt Git et tapez :
$ gitk [options de git log]
Gitk accepte de nombreuses options de ligne de commande, dont la plupart sont passées directement à la commande git log
sous-jacente.
Lâune des plus intĂ©ressantes est probablement dâajouter lâoption --all
qui indique Ă gitk de montrer tous les commits joignables depuis nâimporte quelle rĂ©fĂ©rence, et pas seulement HEAD.
Lâinterface de Gitk ressemble Ă ceci :
gitk
.Dans la partie supérieure, une zone ressemble à la sortie de git log --graph
.
Chaque point représente un commit, les lignes représentent les liens de parenté et les références apparaissent dans des rectangles colorés.
Le point jaune représente HEAD et le point rouge représente les modifications qui ne sont pas validées.
Dans la partie basse, on visualise le commit sélectionné : les commentaires et le patch sur la gauche et une vue en résumé sur la droite.
Au milieu se trouve un ensemble de composants graphiques utilisĂ©s pour rechercher dans lâhistorique.
git-gui
, par contre est un outil permettant de ciseler les commits.
Lui aussi est plus facile à invoquer en ligne de commande :
$ git gui
Et il ressemble à ceci :
git-gui
.Sur la gauche, il y a lâindex ; les modifications non indexĂ©es sont en haut, les modifications indexĂ©es en bas. Vous pouvez dĂ©placer des fichiers entiers entre les deux Ă©tats en cliquant sur leurs icĂŽnes ou vous pouvez sĂ©lectionner un fichier Ă visualiser en cliquant sur son nom.
La vue diff en haut à droite montre les modifications pour le fichier sélectionné. Vous pouvez indexer des sections individuelles (ou des lignes individuelles) en cliquant-droit dans cette zone.
La zone de message et dâaction est en bas Ă droite.
Tapez votre message dans la boßte à texte et cliquez « Commiter » pour réaliser une action similaire à git commit
.
Vous pouvez aussi choisir de corriger le commit précédent en sélectionnant le bouton radio « Corriger dernier commit », ce qui met à jour la zone « Modifs. indexées » avec le contenu du dernier commit.
Ensuite, vous pouvez simplement indexer ou dĂ©sindexer certaines modifications, modifier le message de validation et cliquer Ă nouveau sur le bouton « Commiter » pour remplacer lâancien commit par le nouveau.
gitk
et git-gui
sont des exemples dâoutils orientĂ©s tĂąche.
Chacun est taillĂ© pour un objectif spĂ©cifique (visualiser lâhistorique et crĂ©er des commits, respectivement) en omettant certaines fonctionnalitĂ©s non-nĂ©cessaires Ă cette tĂąche.
GitHub pour macOS et Windows
GitHub a crĂ©Ă© deux clients Git orientĂ©s flux de travail : un pour Windows et un pour macOS. Ces clients sont un bon exemple dâoutils orientĂ©s flux de travail â plutĂŽt que dâexposer toutes les fonctionnalitĂ©s de Git, ils se focalisent sur un sous-ensemble sĂ©lectionnĂ© de fonctions couramment utilisĂ©es qui sâaccordent. Ils ressemblent Ă ceci :
Ils sont pensĂ©s pour se ressembler et fonctionner de la mĂȘme maniĂšre, donc nous les traiterons comme un seul produit dans ce chapitre. Nous nâallons pas explorer en profondeur ces outils (ils ont leur propre documentation), mais un tour rapide de la vue « changes » (qui est celle sur laquelle vous passerez le plus de temps) montre que tout est en ordre.
-
Sur la gauche, il y a la liste des dĂ©pĂŽts que le client suit ; vous pouvez ajouter un dĂ©pĂŽt (soit en le clonant, soit en lâattachant localement) en cliquant sur lâicĂŽne « + » en haut de la zone.
-
Au centre, il y a la zone dâentrĂ©e de commit qui vous permet dâentrer un message de validation et de sĂ©lectionner les fichiers qui devraient ĂȘtre inclus. Sous Windows, lâhistorique de validation est affichĂ© directement en dessous ; sous macOS, câest un onglet sĂ©parĂ©.
-
à droite, il y a une vue de diff qui montre ce qui a changé dans votre répertoire de travail ou les modifications qui ont été incluses dans le commit sélectionné.
-
La derniĂšre chose Ă noter est le bouton « Sync » en haut Ă droite qui est le moyen principal dâinteragir via le rĂ©seau.
Note
|
Vous nâavez pas besoin dâun compte GitHub pour utiliser ces outils. Bien quâils soient pensĂ©s pour mettre en lumiĂšre le service et la mĂ©thode de travail de GitHub, ils fonctionneront parfaitement avec nâimporte quel dĂ©pĂŽt et dialogueront sans problĂšme avec nâimporte quel serveur Git. |
Installation
GitHub pour Windows peut ĂȘtre tĂ©lĂ©chargĂ© depuis https://windows.github.com et GitHub pour macOS depuis https://mac.github.com. Quand les applications sont lancĂ©es pour la premiĂšre fois, elles vous guident Ă travers le paramĂ©trage initial de Git, tel que la configuration de votre nom et de votre adresse de courriel, et toutes deux dĂ©finissent un paramĂ©trage par dĂ©faut sans danger concernant diffĂ©rentes options de configuration telles que les caches dâidentification et le comportement pour les fins de ligne.
Les deux applications sont « permanentes » â les mises Ă jour sont tĂ©lĂ©chargĂ©es et appliquĂ©es en tĂąche de fond pendant que lâapplication est ouverte. Elles incluent une version autonome de Git, ce qui signifie que vous nâaurez probablement pas Ă vous soucier de le mettre Ă jour. Sous Windows, le client inclut un raccourci pour lancer PowerShell avec Posh-git, dont nous parlerons plus loin.
LâĂ©tape suivante consiste Ă fournir Ă lâoutil des dĂ©pĂŽts avec lesquels travailler. Le client vous affiche une liste de dĂ©pĂŽts auxquels vous avez accĂšs sur GitHub et que vous pouvez cloner en une Ă©tape. Si vous avez dĂ©jĂ un dĂ©pĂŽt local, glissez son rĂ©pertoire depuis le Finder ou Windows Explorer dans la fenĂȘtre de client GitHub et il sera inclus dans la liste des dĂ©pĂŽts.
Gestion recommandée du travail
Une fois installĂ© et configurĂ©, le client GitHub peut ĂȘtre utilisĂ© pour de nombreuses tĂąches usuelles. La maniĂšre de travailler avec cet outil est quelques fois appelĂ©e le « GitHub Flow ». Nous traitons ceci plus en dĂ©tail dans Processus GitHub, mais lâesprit gĂ©nĂ©ral est que a) vous validerez vos modifications dans une branche et b) vous synchroniserez avec un dĂ©pĂŽt distant assez rĂ©guliĂšrement.
La gestion de branche est un des domaines pour lesquels les deux outils divergent. Sous macOS, il y a un bouton en haut de la fenĂȘtre pour crĂ©er de nouvelles branches :
Sous Windows, cela se fait en tapant le nom de la branche dans la zone de saisie de bascule de branche :
Une fois votre branche crĂ©Ă©e, ajouter des nouveaux commits est assez simple. Faites des modifications dans votre rĂ©pertoire de travail et quand vous revenez dans la fenĂȘtre du client GitHub, elle vous indiquera quels fichiers ont changĂ©. Entrez un message de validation, sĂ©lectionnez les fichiers que vous souhaitez inclure et cliquez sur le bouton « Commit » (ctrl-entrĂ©e ou â-entrĂ©e).
La maniĂšre principale dâinteragir avec les autres dĂ©pĂŽts Ă travers le rĂ©seau passe par la fonctionnalitĂ© « Sync ». Git dispose dâopĂ©rations diffĂ©rentes pour pousser, rĂ©cupĂ©rer, fusionner et rebaser, mais les clients GitHub les rĂ©duisent en une seule fonctionnalitĂ© Ă plusieurs Ă©tapes. Voici ce qui se passe quand vous cliquez sur le bouton « Sync » :
-
git pull --rebase
. Si cela Ă©choue Ă cause dâun conflit de fusion, revenir Ăgit pull --no-rebase
. -
git push
.
Câest la sĂ©quence la plus habituelle pour les commandes de rĂ©seau quand vous travaillez dans ce mode, donc les rĂ©duire Ă une seule commande fait gagner du temps.
Résumé
Ces outils sont trĂšs adaptĂ©s au mode de travail pour lequel ils sont pensĂ©s. Les dĂ©veloppeurs, mais aussi les non-dĂ©veloppeurs peuvent collaborer sur un projet en peu de temps et un grand nombre des meilleures pratiques pour ce genre de flux de travail sont saisies dans les outils. Cependant, si votre gestion du dĂ©veloppement est diffĂ©rente ou si vous voulez plus de contrĂŽle sur comment et quand les opĂ©rations de rĂ©seau sont rĂ©alisĂ©es, nous vous recommandons dâutiliser un autre client ou la ligne de commande.
Autres GUIs
Il existe un certain nombre dâautres clients Git graphiques et ils sâĂ©tendent depuis les outils trĂšs spĂ©cialisĂ©s, Ă fonction unique jusquâaux applications qui cherchent Ă exposer tout ce que Git peut faire. Le site officiel Git prĂ©sente une liste sĂ©lectionnĂ©e des clients les plus populaires sur https://git-scm.com/downloads/guis. Une liste plus longue est disponible sur le site du wiki Git sur https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Graphical_Interfaces.