Introduction à Git

Publié: 2022-06-30

Lorsque j'ai commencé à créer des sites Web, je "codais en cow-boy", ce qui signifie que j'éditais souvent des fichiers en direct sur le serveur. Il ne m'a fallu que quelques sites cassés pour réaliser que c'était une idée terrible. Ensuite, j'ai commencé à créer des sites localement sur mon ordinateur. Plus d'une fois, j'ai modifié un fichier local uniquement pour migrer le fichier vers le mauvais emplacement dans mon client FTP. Parfois, cela signifiait que j'écrasais un fichier que je ne pouvais pas réparer sans chercher une copie de sauvegarde que j'avais, espérons-le, conservée.

Si vous utilisez toujours FTP et que vous ne pouvez pas restaurer vos fichiers, il est temps d'apprendre à utiliser Git pour le contrôle de version.

Qu'est-ce que le contrôle de version ?

Un système de contrôle de version (VCS) est un type de logiciel qui aide les développeurs de logiciels à gérer les modifications apportées à leur code au fil du temps. Un bon système VCS gardera une trace de chaque modification apportée au code. Cela signifie que si vous cassez quelque chose, vous pouvez revenir à une version précédente du code qui fonctionnait, sans essayer d'appuyer sur "Annuler" jusqu'à ce que les choses fonctionnent.

Dans un environnement d'équipe, un VCS vous aidera à travailler avec différents membres en vous donnant des outils qui vous permettront de fusionner les modifications de code lorsque différents membres mettent à jour des fichiers.

L'une des choses que je fais dans Git est de créer une nouvelle branche pour chaque fonctionnalité que je crée. Cela signifie que je peux suivre les modifications que j'apporte sur une branche, mais revenir à l'état actuel du site en revenant à la branche principale. Nous parlerons plus en détail de ce flux de travail plus tard.

Qu'est-ce que Git ?

Git est un système de contrôle de version, mais ce n'est pas le seul. Le référentiel WordPress principal est exécuté via SVN, bien que vous puissiez également trouver une copie Git. Il existe également Mercurial, Visual Source Safe, VESTA et de nombreuses autres options.

Malgré toutes ces options, Git est ce que presque tout le monde utilise, c'est donc le contrôle de version que nous allons découvrir aujourd'hui.

Termes et commandes de base de Git

Avant d'approfondir les mécanismes d'utilisation de Git, nous devons comprendre quelques termes. Nous n'aborderons que les termes que vous rencontrerez régulièrement.

Pour une liste plus complète de tout ce que vous pourriez rencontrer, regardez ceci Référence Git ou ceci liste complète des commandes Git .

Ajouter : Lorsque vous avez apporté des modifications à votre code, vous utiliserez la commande git add pour ajouter les modifications afin qu'elles puissent être validées.

Branche : Une branche est une version de votre référentiel qui diffère du projet de travail principal. Tous les référentiels sont livrés avec une branche principale ou, plus communément dans les projets plus anciens, une branche master. Récemment, Git et Github ont commencé à changer le nom de la branche par défaut de master en main en raison des problèmes historiques avec le mot master. Git 2.28 vous permet également de définir votre nom de branche par défaut pour tout nouveau projet.

Checkout : vous utilisez la git checkout pour basculer entre les différentes branches d'un référentiel. Lorsque vous utilisez cette commande, Git modifie le contenu des fichiers ou ajoute et supprime des fichiers qui diffèrent entre les branches.

Clone : La commande git clone est utilisée pour faire une copie d'un dépôt à partir du dépôt source. Vous utiliseriez cette commande pour obtenir une copie locale d'un référentiel distant afin de pouvoir travailler sur le code.

Commit : Une fois que vous avez utilisé git add , vous devez utiliser git commit pour pouvoir enregistrer l'état de vos fichiers dans git.

init : git init crée pour vous un référentiel vide avec tous les fichiers de base dont Git a besoin pour fonctionner.

Merge : Une fois que vous avez apporté des modifications à une branche et que vous les avez ajoutées et validées, vous utilisez la commande git merge pour migrer ces modifications vers d'autres branches.

Origine : Il s'agit du nom par défaut de la version principale du référentiel. Je change généralement le mien pour qu'il soit plus descriptif que l'origine. Si je travaille avec Github, je modifie les paramètres dans Git pour que origin devienne github. Cela m'aide à garder les choses claires dans ma tête.

Push : met à jour la branche distante avec les commits qui ont été effectués dans votre version locale du référentiel.

Référentiel : Cela peut aussi être appelé un "Repo" et est un répertoire de tous les fichiers, et un historique Git des modifications apportées à ces fichiers.

Status : git status vous montre l'état actuel de votre dépôt de travail.

.gitignore : Il s'agit d'un fichier caché qui contient des modèles de fichiers que Git ne prendra pas la peine de suivre. Si vous avez .DS_Store dans vos fichiers .gitignore , il ignorera tous les fichiers embêtants que macOS place souvent dans des dossiers.

Hébergement de référentiels Git

Une autre chose à comprendre avant de plonger est que, même si vous n'avez pas besoin d'un emplacement distant pour votre référentiel, ne pas en avoir un réduira certains des avantages de l'utilisation de Git. Sans référentiel distant hébergé ailleurs, vous n'aurez pas de sauvegarde de votre code si votre ordinateur tombe en panne ou est volé.

Github et Bitbucket sont deux des endroits les plus populaires pour héberger vos référentiels Git car ils sont pour la plupart gratuits et vous pouvez avoir des référentiels privés. Cela signifie que votre code se trouve sur le serveur de quelqu'un d'autre, donc si vous n'aimez pas cette idée, vous pouvez utiliser Gitlab sur votre serveur pour héberger des référentiels.

Installer Git

Sur macOS, le moyen le plus simple d'installer git est d'ouvrir Terminal et de taper git qui vous invitera à télécharger les outils de ligne de commande Xcode pour installer git. Une fois que cela est terminé, vous pouvez exécuter git –version pour voir quelle version de git vous avez. Si cela ne fonctionne pas, il existe plusieurs autres façons d'installer git sur macOS.

Pour les utilisateurs de Windows, vous pouvez installer Git avec le programme d'installation officiel de Git. Git est également fourni avec l'application Github Desktop, dont nous parlerons plus tard.

Si vous utilisez Linux, git doit être fourni avec votre gestionnaire de packages, ou vous pouvez consulter ces méthodes pour installer git sur Linux.

Configuration des valeurs par défaut de Git

Une fois que vous avez installé Git, vous devez le configurer de sorte que chaque commit utilise votre nom et votre adresse e-mail et que les messages de commit utilisent votre éditeur préféré pour saisir les commentaires qui accompagnent le commit. Nous verrons comment les définir dans macOS via l'application Terminal.

git config --global user.name "Your Name" définira le nom qui accompagne chaque commit effectué sur votre ordinateur.

git config --global user.email "[email protected]" définira l'adresse e-mail associée à chaque validation que vous effectuez.

git config --global core.editor vim deviendra l'éditeur par défaut pour Git vim. Bien que j'aime vim, ce n'est pas l'éditeur que tout le monde aime. Si vous utilisez Atom, vous utiliserez git config –global core.editor « atom –wait » ou git config –global core.editor « subl -n -w » pour Sublime Text.

Si vous aimez les IDE, Visual Studio Code vous permet également de travailler avec Git directement depuis l'application si vous le souhaitez, tout comme PHPStorm .

Établir un référentiel

Maintenant que nous avons installé et configuré git, commençons un référentiel de base. Ouvrez votre terminal et créez un dossier appelé test-repository en tapant mkdir test-repository . Tapez ensuite cd test-repository pour accéder à votre répertoire test-repository et tapez git init .

À ce stade, vous aurez un répertoire caché dans votre dossier appelé .git . Puisqu'il s'agit d'un fichier caché, vous devrez taper ls -a dans Terminal pour lister les fichiers cachés.

Utilisation de git ajouter

Créons maintenant un fichier en tapant touch test.txt dans Terminal. Tapez ensuite git status pour voir le fichier que vous venez d'ajouter.

Comme vous pouvez le voir, le nouveau fichier que nous avons créé apparaît en rouge et nous indique que son statut n'est pas suivi. Cela signifie que Git voit le fichier, mais n'en a aucune trace.

Tapez git add test.txt pour dire à Git de préparer ce fichier, puis tapez à nouveau git status et Git devrait vous dire qu'il est au courant d'un fichier modifié.

Commettre des fichiers dans Git

Maintenant que nous avons ajouté notre fichier, nous devons le valider afin que Git enregistre l'état du fichier. Nous pouvons le faire en une seule ligne, sans ouvrir notre éditeur par défaut avec la commande suivante.

git commit -m 'adding our first file'

Le drapeau -m indique à git que les mots entre guillemets simples sont le commentaire qui accompagne la commande.

Maintenant, notre référentiel contient un seul fichier avec son statut enregistré.

Créer une branche

Le véritable pouvoir de Git vient lorsque vous commencez à vous lancer dans la création de branches. Disons que vous voulez écrire un tas dans votre fichier test.txt mais que vous n'êtes pas sûr de le conserver et que vous voulez vous assurer que vous pouvez revenir au fichier actuellement vide. Nous pouvons le faire avec une branche.

Pour créer une branche, nous pouvons taper git checkout -b new-branch . C'est un raccourci pour créer une branche en même temps que nous vérifions la branche, et c'est ce que j'utilise chaque fois que j'ai besoin de créer une branche.

Ouvrez maintenant notre fichier test.txt , ajoutez-y du texte et enregistrez-le. Utilisez ensuite git add et git commit comme ci-dessus pour enregistrer l'état du fichier.

Ensuite, tapez git checkout master pour revenir à la branche principale par défaut, puis examinez à nouveau le contenu de votre fichier test.txt . Vous remarquerez que tout le texte que vous avez tapé a été supprimé. Git supprimerait même un nouveau fichier qui ne se trouvait que sur une seule branche, bien qu'il en conserve une trace afin qu'il ne soit pas parti.

Fusionner une branche

Maintenant, nous aimons tout ce que nous avons écrit dans notre fichier, alors intégrons-le à notre branche principale. Assurez-vous que vous êtes sur la branche principale et tapez git merge new-branch pour intégrer vos modifications.

Si vous regardez le contenu de test.txt maintenant, vous trouverez vos modifications sur la branche principale telles que vous les avez laissées.

Utiliser Git avec WordPress

Bien que l'exemple ci-dessus soit extrêmement simple, c'est tout ce dont vous avez besoin pour démarrer avec Git dans vos projets. Parlons donc exactement de la façon dont vous obtenez un projet WordPress en utilisant Git.

La première considération est de savoir quel niveau dans votre hiérarchie de dossiers doit être la racine de votre référentiel Git. Si vous créez un thème, vous pouvez faire du dossier du thème votre référentiel. La même logique s'applique si vous construisez un plugin.

Je travaille généralement sur des thèmes et des plugins en même temps, j'utilise donc souvent le dossier wp-content comme emplacement pour mon référentiel. Lorsque je fais cela, je m'assure d'ignorer le dossier de téléchargement afin de ne pas ajouter toutes les images et les fichiers téléchargés au référentiel. Ils encombrent le référentiel et peuvent ralentir Git car il n'est pas très efficace pour compresser les fichiers image.

Si je gère un flux de travail de déploiement complet, je fais du dossier racine WordPress l'emplacement principal de mon référentiel Git. Ensuite, je m'assure d'ajouter wp-content/uploads et wp-config.php à mon fichier .gitignore . wp-config.php est spécifique à chaque installation de WordPress, donc je ne veux pas qu'il soit déployé sur une autre version du fichier, ce qui entraînerait l'arrêt du site.

Vous pouvez voir une copie du fichier .gitignore que j'utilise comme point de départ pour chaque projet. Cela suppose que vous utilisez wp-content comme racine de votre référentiel Git, donc je change certains des modèles d'ignorance si je suis à la racine de WordPress.

Applications d'interface graphique Git

Bien que nous ayons couvert les bases via la ligne de commande pour Git, tout le monde n'est pas à l'aise avec la ligne de commande, je sais que je ne l'étais pas quand j'ai commencé à utiliser Git. Même maintenant, je veux parfois regarder une représentation visuelle de ce que fait Git avant d'apporter des modifications à ma configuration.

Heureusement, il existe plusieurs excellents clients GUI pour Git que vous pouvez utiliser, alors soulignons-en quelques-uns.

Bureau Github (Windows/macOS)

L'application Github Desktop est un excellent point de départ lorsque vous regardez les clients de l'interface graphique Git.

De nombreux projets open source utilisent Github comme référentiel de code pour la collaboration et utilisent le flux Github standard pour faire leur travail. Le client Github Desktop est conçu pour vous aider à gérer ce flux afin de faciliter la création de demandes d'extraction.

Si vous n'êtes pas sûr de ce qu'est une pull request, consultez Documentation de Github sur les pull requests

Malheureusement pour les utilisateurs Linux, il n'y a pas d'application officielle Github Desktop, mais il existe un fork de Github Desktop qui s'installera sur les systèmes Linux.

Tour Git (Windows/macOS)

L'interface graphique Git que j'utilise est Git Tower. Git Tower est disponible pour macOS et Windows. Lorsque j'ai commencé avec Git, j'ai trouvé beaucoup plus facile de résoudre les conflits et de voir ce qui était différent entre les fichiers à l'intérieur de cette interface graphique.

Copie de travail (iOS/iPadOS)

Si vous travaillez principalement à partir d'un iPad, comme moi, alors vous devriez regarder Working Copy. Working Copy est un client Git complet qui fonctionne avec iOS et iPadOS. Il propose même l'intégration de raccourcis afin que vous puissiez automatiser certaines parties de votre flux de travail Git.

Emballer

Bien que nous ayons couvert beaucoup de terrain dans vos connaissances sur Git aujourd'hui, il est impossible qu'un seul article de blog soit exhaustif sur le sujet. Vous pouvez continuer votre apprentissage avec la documentation d'aide de Nexcess ainsi que ces excellentes ressources.

  • Documentation Git
  • Livre Pro Git
  • Laracasts Git Leçon
  • Les propres ressources externes de Git

En utilisant Git pour gérer vos projets clients, vous vous éviterez des maux de tête puisque vous pourrez annuler des modifications ou supprimer des branches entières si vous ne voulez plus le travail que vous avez effectué. Plus besoin de Ctrl + Z jusqu'à ce que vous pensiez avoir suffisamment reculé, Git gardera une trace de tout cela pour vous.