5 fonctionnalités de Git qui donnent vraiment l'impression de tricher
L'outil de ligne de commande git propose tellement d'options, de sous-commandes et d'autres fonctionnalités qu'il est facile de passer à côté de certaines des meilleures. Ces fonctionnalités sont moins connues, mais vous aideront à prendre des raccourcis et à tirer le meilleur parti de Git.
Sommaire
Arbres de travail Git
L'arbre de travail Git reste l'une de mes fonctionnalités préférées car il évite tant de douleur et de frustration. En termes simples, le worktree La commande vous permet de travailler sur plusieurs branches en même temps.
Son utilité dépendra de la façon dont vous utilisez les branches. Si vous travaillez sur des projets plus importants, il est fort probable que vous utilisiez des branches de fonctionnalités, des branches pour des corrections de bogues spécifiques, etc. Changer de branche pendant que vous travaillez dessus peut être fastidieux et sujet à des erreurs.
Vous pouvez créer un nouvel arbre de travail et sa branche en une seule étape :
git worktree add
La dernière partie du chemin sera utilisée pour le nouveau nom de branche :
Le git branch La commande mettra alors en surbrillance les arbres de travail en cyan, préfixés d'un symbole + :
Alias Git
Cette fonctionnalité n’est pas une commande, même si elle peut vous aider à en faire une. Vous avez probablement déjà entendu parler des alias git ; ils sont essentiellement les mêmes que les alias de shell Linux normaux, mais spécifiquement adaptés aux sous-commandes git.
Vous apprécierez vraiment leur puissance une fois que vous commencerez à les utiliser ; si ce n'est pas déjà fait, faites aujourd'hui le jour où vous créez votre premier alias :
git config --global alias.aliases 'config --get-regexp ^alias.'
Cette commande git config montre le modèle général de création d'alias, et c'est un alias utile en soi car il vous montre une liste de vos alias actuels. Une fois que vous l'avez configuré, exécutez simplement git aliases pour voir une liste de tous vos alias actuels :
Le modèle général pour définir un alias est simplement :
git config --global alias.(alias-name) (alias-command)
Notez que vous devez citer votre commande si elle contient des espaces. Voici quelques exemples d’alias utiles que vous pouvez configurer :
-
alias.dir rev-parse --show-toplevelfaitgit dirafficher le chemin racine du référentiel dans lequel vous vous trouvez actuellement -
alias.treelog log --all --decorate --oneline --graphfaitgit treelogafficher un journal bien formaté avec un graphique de branche et des balises. -
alias.last 'log -1 HEAD'faitgit lastafficher les détails du commit le plus récent, y compris son auteur, sa date et son message complet.
Vous constaterez peut-être que vous vous retrouvez avec de nombreux alias pour différents formats de journaux git. En effet, la sous-commande est si expressive, avec de nombreuses options, qu'il est difficile de se souvenir de vos favoris.
Sous-modules Git
Git est un outil essentiel pour le contrôle de code source, que votre projet soit petit ou grand, centralisé ou distribué. Certaines de ses fonctionnalités sont toutefois adaptées à des cas d’utilisation très spécifiques, et la commande submodule en est un exemple.
Les sous-modules Git vous permettent d'inclure un référentiel dans un autre. Bien que vous puissiez obtenir quelque chose de similaire en copiant le contenu d'un dépôt dont dépend votre code, les sous-modules formalisent cela et évitent les duplications inutiles.
Les sous-modules peuvent être moins nécessaires pour les projets publics, qui utilisent souvent un gestionnaire de packages comme NPM ou Cargo pour prendre en charge les dépendances. Cependant, pour des projets privés ou personnels, cela peut s'avérer excessif, les sous-modules constituent donc une alternative utile.
Ajouter un autre dépôt en tant que sous-module est simple :
git submodule add url subdir
Ici, url fait référence à l'URL Git de la dépendance, qui sera utilisée pour télécharger ses fichiers dans le répertoire nommé subdir.
Une fois que vous avez ajouté un sous-module, vous devriez remarquer l'apparition d'un nouveau fichier nommé .gitmodules. Tout comme avec .gitignore, vous devez valider ce fichier dans votre référentiel afin qu'il fasse partie de l'historique de votre projet et soit disponible pour les autres contributeurs :
git add .gitmodules subdir
git commit -m "added submodule"
Git ajoutera uniquement une référence légère au sous-module via le fichier .gitmodules, c'est donc beaucoup plus efficace que d'importer manuellement tous les fichiers de la dépendance. Vous pouvez toujours extraire les modifications en amont de cette dépendance, en utilisant submodule update:
git submodule update --recursive --remote
L'interface graphique de Git
Saviez-vous que Git est livré avec sa propre application GUI ? OK, ce n'est pas un challenger sérieux pour Fork, GitHub Desktop ou même Lazygit, un équivalent de TUI qui a l'air tout aussi beau. Mais cet outil est une excellente option si vous aimez garder les choses minimales, et sa portabilité devrait garantir qu'il est disponible sur n'importe quel système que vous utilisez.
Si votre version n'est pas fournie avec l'outil (comme ce n'était pas le cas sur mon système macOS), vous pouvez l'installer à l'aide d'APT :
sudo apt install git-gui
Ou vous pouvez l'installer en utilisant Homebrew :
brew install git-gui
L'outil est particulièrement utile lors de la validation du code. Son interface se divise en quatre panneaux simples affichant les modifications non planifiées et planifiées, une différence du fichier sélectionné et un formulaire pour saisir un message et valider.
L'application git-gui ne remplacera certainement pas les alternatives plus avancées et plus fonctionnelles, mais elle peut être un excellent moyen de réviser et de valider rapidement votre code.
La dernière commande modifiée
Pour terminer sur une note plus expérimentale, cette dernière fonctionnalité est une nouvelle, vous devez donc garder à l'esprit qu'elle est sujette à changement. Cependant, vous pouvez commencer à l'utiliser immédiatement (dans Git 25.2+) et réfléchir à la manière dont il peut s'intégrer dans votre flux de travail.
Cette sous-commande est assez simple : elle répertorie les fichiers contrôlés par git dans votre répertoire actuel, ainsi que l'ID de validation contenant leur modification la plus récente.
Par défaut, la dernière modification affiche uniquement les fichiers de votre répertoire actuel. Tous les répertoires afficheront l’ID de validation du fichier modifié le plus récemment qu’ils contiennent. Cependant, avec le -r option, il affichera à la place tous les fichiers situés sous votre répertoire actuel, y compris ceux des répertoires.
git last-modified
Comme pour de nombreuses commandes git, vous pouvez limiter la sortie de la dernière modification par révision ou par chemin, afin de pouvoir l'adapter à vos besoins exacts. Le résultat peut être particulièrement utile dans les scripts et lors de la création d'interfaces similaires au navigateur de fichiers de GitHub.
