Dans la commande git<pathspec></pathspec>
Paramètres: utilisation flexible des fonctions puissantes de Git
Lors de l'examen de la documentation de commande GIT, vous remarquerez peut-être que de nombreuses commandes contiennent<pathspec></pathspec>
Options. Au début, vous pourriez penser que ce n'est qu'un énoncé technique de "chemin" et ne peut accepter que des répertoires et des noms de fichiers. Cependant, après une compréhension plus profonde, vous constaterez que la commande git<pathspec></pathspec>
Beaucoup plus fort que vous ne le pensez.
<pathspec></pathspec>
Il s'agit d'un mécanisme utilisé par GIT pour limiter la portée des commandes GIT, qui limite la portée d'exécution des commandes à un sous-ensemble du référentiel. Même si vous ne le réalisez pas, vous l'utilisez peut-être déjà<pathspec></pathspec>
Maintenant. Par exemple, dans la commande git add README.md
,<pathspec></pathspec>
C'est README.md
. mais<pathspec></pathspec>
Capacité à réaliser des opérations plus raffinées et flexibles.
étude<pathspec></pathspec>
L'avantage est qu'il améliore considérablement la fonctionnalité de nombreuses commandes GIT. Par exemple, avec git add
vous pouvez simplement ajouter des fichiers dans un seul répertoire; Avec git diff
vous pouvez vérifier les modifications apportées aux noms de fichiers avec une extension .scss
uniquement; Vous pouvez également utiliser git grep
pour rechercher tous les fichiers, mais exclure les fichiers dans le répertoire /dist
.
aussi,<pathspec></pathspec>
Aide à écrire un alias Git plus général. Par exemple, j'ai un alias appelé git todo
qui recherchera la chaîne "todo" dans tous mes fichiers de référentiel. Cependant, je veux qu'il affiche toutes les instances de la chaîne, même si elles ne sont pas dans mon répertoire de travail actuel. utiliser<pathspec></pathspec>
, nous pouvons y parvenir.
Fichier ou répertoire
utiliser<pathspec></pathspec>
Le moyen le plus direct consiste à utiliser le nom du répertoire et / ou du fichier. Par exemple, en utilisant git add
, vous pouvez effectuer ce qui suit : .
, src/
et README
sont les commandes de chaque commande, respectivement<pathspec></pathspec>
.
git add. # Ajouter le répertoire de travail actuel (CWD) git ajouter src / # ajouter src / répertoire git ajouter readme # ajouter uniquement les fichiers readme
Vous pouvez également ajouter plusieurs commandes à une seule commande<pathspec></pathspec>
:
Git Ajouter Src / Server / # Ajouter SRC / et Server / répertoires
Parfois, vous pouvez voir des commandes<pathspec></pathspec>
Il y a un --
devant lui. Ceci est utilisé pour éliminer<pathspec></pathspec>
ambiguïté entre les autres parties de la commande.
Magazine
En plus des fichiers et répertoires, vous pouvez également utiliser *
, ?
et []
pour correspondre aux modèles. Le symbole *
est utilisé comme joker, et il correspondra /
sur le chemin - en d'autres termes, il recherchera des sous-répertoires.
Git log '* .js' # Enregistrez tous les fichiers .js dans les fichiers cwd et sous-répertoires Git Log '. *' # Enregistrer tous les fichiers et répertoires cachés dans CWD Git Log '* /.
Les citations sont très importantes, surtout lorsque vous utilisez *
. Ils empêchent votre coquille (comme Bash ou Zsh) d'étendre les caractères génériques en soi. Par exemple, voyons comment git ls-files
répertorie les fichiers avec et sans devis.
# Exemple de structure de répertoire # #. # ├fiques-package-Lock.json # ├── package.json # └── Données # ├── bar.json # ├── baz.json # └── foo.json git ls-files * .json # package-lock.json # package.json git ls-files '* .json' # data / bar.json # data / baz.json # data / foo.json # package-lock.json # package.json
Étant donné que le shell s'étend *
dans la première commande, la commande reçue par git ls-files
est git ls-files package-lock.json package.json
. Les citations s'assurent que Git est la fête qui étend les jokers.
Vous pouvez également utiliser ?
Personnages comme des jokers pour un seul personnage. Par exemple, pour faire correspondre les fichiers MP3 ou MP4, vous pouvez effectuer ce qui suit.
git ls-files '* .mp?'
Expression du crochet
Vous pouvez également utiliser des "expressions de crochet" pour correspondre aux personnages individuels d'une collection. Par exemple, si vous souhaitez faire correspondre les fichiers TypeScript ou JavaScript, vous pouvez utiliser [tj]
. Cela correspondra t
ou j
git ls-files '*. [tj] s'
Cela correspondra au fichier .ts
ou au fichier .js
. En plus d'utiliser des caractères, vous pouvez également vous référer à certains ensembles de caractères dans les expressions de carré. Par exemple, vous pouvez utiliser [:digit:]
dans les expressions de la crochet pour correspondre à n'importe quel numéro décimal, ou utiliser [:space:]
pour correspondre à n'importe quel caractère spatial.
git ls-files '* .mp [[: chiffre:]]' # # mp0, mp1, mp2, mp3, ..., mp9 git ls-files '* [[: espace:]] *' # correspond à tout chemin contenant des espaces
Pour en savoir plus sur les expressions de crochets et comment les utiliser, consultez le manuel GNU.
Signature magique
<pathspec></pathspec>
A également un outil spécial appelé "Magic Signature" qui peut être utilisé pour votre<pathspec></pathspec>
Déverrouillez certaines fonctionnalités supplémentaires. Ces "signatures magiques" sont passées<pathspec></pathspec>
Le début du :(signature)
est appelé. Si vous ne comprenez pas, ne vous inquiétez pas: certains exemples devraient vous aider.
haut
top
indique à Git de correspondre au modèle de la racine du référentiel GIT au lieu du répertoire de travail actuel. Vous pouvez également utiliser l'abréviation /
au lieu de :(top)
.
git ls-files ': (en haut) *. js' git ls-files ': / *. js' # abréviation
Cela répertorie tous les fichiers du référentiel avec l'extension .js
. Utilisez la signature top
, qui peut être appelée dans n'importe quelle sous-répertoire du référentiel. J'ai trouvé cela particulièrement utile lors de l'écriture d'alias génériques GIT!
git config --global aliaS.js 'ls-files -': (top) *. js ''
Vous pouvez utiliser git js
pour obtenir une liste de tous les fichiers JavaScript dans votre projet n'importe où dans votre référentiel.
icase
icase
dit à Git d'ignorer le cas lors de la correspondance. Ceci est très utile si vous ne vous souciez pas du cas des noms de fichiers - par exemple, il est très utile pour faire correspondre les fichiers JPG, qui utilisent parfois l'extension majuscule JPG.
git ls-files ': (iase) *. jpg'
littéral
La signature literal
dit à Git de traiter littéralement tous les personnages. Cette option peut être utilisée si vous souhaitez traiter des personnages comme *
et ?
comme eux-mêmes plutôt que des caractères génériques. Sauf si le nom de fichier de votre référentiel contient *
ou ?
, Je ne pense pas que cette signature soit fréquemment utilisée.
Git log ': (littéral) *. JS' # Renvoie le journal du fichier '* .js'
globe
Quand j'ai commencé à apprendre<pathspec></pathspec>
Quand j'ai remarqué que les jokers fonctionnent différemment du fait, je suis habitué. Habituellement, je vois un seul astérisque *
comme un joker qui ne correspond à rien dans le répertoire, tandis qu'un astérisque continu ( **
) en tant que joker "profond" correspondra au nom dans le répertoire. Si vous préférez ce style de joker, vous pouvez utiliser glob
Magic Signatures!
Ceci est très utile si vous voulez avoir un contrôle plus granulaire sur la façon dont la structure du répertoire de projet est recherchée. Par exemple, voyons comment ces deux git ls-files
recherchent des projets React.
git ls-files ': (glob) src / composants / * / *. jsx' # "top" composant jsx git ls-files ': (glob) src / composants / ** / *. jsx' # "all" jsx composants
att
GIT peut définir des "propriétés" pour des fichiers spécifiques. Vous pouvez définir ces propriétés à l'aide du fichier .gitattributes
.
<code># .gitattributes src/components/vendor/* vendored # 设置“vendored”属性src/styles/vendor/* vendored</code>
Utilisez des signatures magiques attr
pour votre<pathspec></pathspec>
Définir les exigences d'attribut. Par exemple, nous pouvons vouloir ignorer les documents ci-dessus du vendeur.
git ls-files ': (att:! Vendoré) *. JS' # Rechercher des fichiers js non vendus
exclure
Enfin, il y a la signature magique de " exclude
" (abrégé comme :!
Ou :^
). Cette signature fonctionne différemment des autres signatures magiques. Résoudre tous les autres<pathspec></pathspec>
Après cela, toutes les signatures exclude
seront analysées<pathspec></pathspec>
, puis retirez -le du chemin retourné. Par exemple, vous pouvez rechercher tous les fichiers .js
tout en excluant les fichiers de test .spec.js
.
git grep 'foo' - '* .js' ': (exclure) *. Spec.js' # Rechercher des fichiers .js, exclure .spec.js git grep 'foo' - '* .js' ':! *. spec.js'. # La même abréviation que ci-dessus
Signature combinée
Il n'y a rien pour vous limiter à un seul<pathspec></pathspec>
Utilisez plusieurs signatures magiques! Vous pouvez utiliser plusieurs signatures en séparant vos mots magiques avec des virgules entre parenthèses. Par exemple, si vous souhaitez correspondre au bas du référentiel (en utilisant top
), insensible à la casse (en utilisant icase
), uniquement en utilisant le code l'auteur (en utilisant attr
pour ignorer les fichiers du fournisseur) et en utilisant des wildcards de style glob (en utilisant glob
), vous pouvez effectuer ce qui suit.
git ls-files - ': (top, iase, glob, att:! vend) src / composants / * / *. jsx'
Les deux signatures magiques que vous ne pouvez pas combiner sont glob
et literal
, car ils affectent tous les deux la façon dont Git gère les caractères génériques. Ceci est mentionné dans le glossaire Git et c'est peut-être ma phrase préférée que j'ai lue dans n'importe quel document.
Glob Magic est incompatible avec la magie littérale.
<pathspec></pathspec>
Il fait partie intégrante de nombreuses commandes GIT, mais sa flexibilité n'est pas immédiatement visible. En apprenant à utiliser les caractères génériques et les signatures magiques, vous pouvez doubler votre capacité sur la ligne de commande GIT.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

J'ai eu cette question l'autre jour. Ma première pensée est: une question étrange! La spécificité concerne les sélecteurs, et les rubriques ne sont pas des sélecteurs, donc ... non pertinents?

Oui, vous le pouvez, et cela n'a pas vraiment d'importance dans quel ordre. Un préprocesseur CSS n'est pas requis. Il fonctionne dans CSS ordinaire.

Vous devriez à coup sûr définir des en-têtes de cache éloignés sur vos actifs comme CSS et JavaScript (et des images et polices et quoi que ce soit d'autre). Cela dit au navigateur

De nombreux développeurs écrivent sur la façon de maintenir une base de code CSS, mais peu d'entre eux écrivent sur la façon dont ils mesurent la qualité de cette base de code. Bien sûr, nous avons

Avez-vous déjà eu un formulaire qui devait accepter un petit texte arbitraire? Comme un nom ou autre chose. C'est exactement à quoi sert. Il y a beaucoup de

Je suis tellement excité de me diriger vers Zurich, en Suisse pour la conférence de Front (j'adore ce nom et URL!). Je n'ai jamais été en Suisse auparavant, donc je suis excité

L'un de mes développements préférés dans le développement de logiciels a été l'avènement de Serverless. En tant que développeur qui a tendance à s'enliser dans les détails

Dans cet article, nous utiliserons une démo de magasin de commerce électronique que j'ai construit et déployé sur Netlify pour montrer comment nous pouvons faire des itinéraires dynamiques pour les données entrantes. C'est assez


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit