検索

git pathspecsとそれらの使用方法

gitコマンドで<pathspec></pathspec>パラメーター:Gitの強力な機能の柔軟な使用

gitコマンドのドキュメントを確認するとき、多くのコマンドが含まれていることに気付くかもしれません<pathspec></pathspec>オプション。最初は、これは単なる「パス」の技術的な声明であり、ディレクトリとファイル名のみを受け入れることができると思うかもしれません。しかし、より深い理解の後、あなたはgitコマンドが<pathspec></pathspec>あなたが思っているよりもはるかに強い。

<pathspec></pathspec>これは、GITコマンドの範囲を制限するためにGITで使用されるメカニズムであり、コマンドの実行範囲をリポジトリのサブセットに制限します。気付いていなくても、すでに使用している可能性があります<pathspec></pathspec>今。たとえば、コマンドgit add README.md<pathspec></pathspec>README.mdです。しかし<pathspec></pathspec>より洗練された柔軟な操作を実現する能力。

勉強<pathspec></pathspec>利点は、多くのGITコマンドの機能を大幅に向上させることです。たとえば、 git add使用すると、単一のディレクトリにファイルを追加するだけです。 git diff使用すると、拡張.scssのみでファイル名に加えられた変更を確認できます。 git grepを使用してすべてのファイルを検索することもできますが、 /distディレクトリにファイルを除外することもできます。

また、<pathspec></pathspec>より一般的なGITエイリアスを書くのに役立ちます。たとえば、すべてのリポジトリファイルで文字列「TODO」を検索するgit todoというエイリアスがあります。ただし、現在のワーキングディレクトリにない場合でも、文字列のすべてのインスタンスを表示したいと考えています。使用<pathspec></pathspec>、これを達成することができます。

ファイルまたはディレクトリ

使用<pathspec></pathspec>最も直接的な方法は、ディレクトリおよび/またはファイル名を使用することです。たとえば、 git add使用して、次のことを行うことができます.src/およびREADME 、それぞれ各コマンドのコマンドです<pathspec></pathspec>

 git add。 #現在の作業ディレクトリ(CWD)を追加
git add src/#src/ directory git add readme#readmeファイルのみを追加する

1つのコマンドに複数を追加することもできます<pathspec></pathspec>

 git add src/ server/#src/ and server/ directoriesを追加

時々、コマンドが表示される場合があります<pathspec></pathspec>その前に--があります。これは排除するために使用されます<pathspec></pathspec>コマンドの他の部分の間のあいまいさ。

ワイルドカード

ファイルやディレクトリに加えて、 *?使用することもできます。 、および[]パターンに合わせます。 *シンボルはワイルドカードとして使用され、パスと/します。つまり、サブディレクトリを検索します。

 git log '*.js'#cwdおよびsubdirectories git log 'のすべての.jsファイルを録画します。

特に*を使用する場合、引用は非常に重要です。彼らはあなたのシェル(BashやZSHなど)がそれ自体でワイルドカードを拡張するのを防ぎます。たとえば、 git ls-files見積もりの​​有無にかかわらずファイルをどのようにリストしているかを見てみましょう。

 #サンプルディレクトリ構造#
#。
#├| −紅 - パッケージlock.json
#├)
#└| −リンーデータ
#├├。-bar.json
#├├。-baz.json
#└└。-foo.json

git ls-files *.json

#package-lock.json
#package.json

git ls-files '*.json'

#データ/bar.json
#データ/baz.json
#data/foo.json
#package-lock.json
#package.json

シェルは最初のコマンドで*されるため、 git ls-filesで受信したコマンドはgit ls-files package-lock.json package.jsonです。 Quotes Gitがワイルドカードを拡張するパーティーであることを確認してください。

あなたも使用することができますか?単一のキャラクターのワイルドカードとしてのキャラクター。たとえば、MP3またはMP4ファイルを一致させるには、次のことを行うことができます。

 git ls-files '*.mp?'

四角いブラケット式

「四角いブラケット式」を使用して、コレクション内の個々の文字を一致させることもできます。たとえば、TypeScriptまたはJavaScriptファイルを一致させる場合は、 [tj]を使用できます。これはtまたはjと一致します。

 git ls-files '*。[tj] s'

これは.tsファイルまたは.jsファイルと一致します。文字の使用に加えて、スクエアブラケット式の特定の文字セットを参照することもできます。たとえば、四角いブラケット式で[:digit:]を使用して10進数を一致させるか、 [:space:]を使用してスペース文字を一致させることができます。

 git ls-files '*.mp [[:digit:]'#mp0、mp1、mp2、mp3、...、mp9
git ls-files '*[[:space:]]*'#スペースを含む任意のパスを一致させます

四角いブラケットの表現とそれらの使用方法の詳細については、GNUマニュアルをご覧ください。

魔法の署名

<pathspec></pathspec>また、あなたのために使用できる「魔法の署名」と呼ばれる特別なツールもあります<pathspec></pathspec>いくつかの追加機能のロックを解除します。これらの「魔法の署名」は通過します<pathspec></pathspec>:(signature)の始まりが呼び出されます。わからない場合は、心配しないでください。いくつかの例が役立つはずです。

トップ

top署名は、現在の作業ディレクトリではなく、Gitリポジトリのルートからパターンを一致させるようにGitに指示します。略語/代わりに使用することもできます:(top)

 git ls-files ':(上)*。Js'
git ls-files ':/*。js'#abbreviation

これにより、 .js拡張機能を備えたリポジトリ内のすべてのファイルがリストされます。リポジトリ内の任意のサブディレクトリで呼び出すことができるtop署名を使用します。これは、一般的なGitエイリアスを書くときに特に役立ちました!

 git config -global alias.js 'ls-files-' :(トップ)*。js ''

git jsを使用して、プロジェクト内のすべてのJavaScriptファイルのリストをリポジトリのどこでも取得できます。

icase

icase署名は、一致するときにケースを無視するようにGITに指示します。これは、ファイル名のケースを気にしない場合に非常に便利です。たとえば、大文字の拡張機能JPGを使用するJPGファイルを一致させるのに非常に役立ちます。

 git ls-files ':( icase)*。jpg'

リテラル

literal署名は、すべてのキャラクターを文字通り扱うようにGitに指示します。このオプションは、キャラクターを* and ?のように扱いたい場合に使用できます。ワイルドカードではなく自分自身として。リポジトリのファイル名に*または? 、この署名が頻繁に使用されるとは思わない。

 git log ':(リテラル)*。js'#ファイルのログを返します '*.js'

グローブ

私が学び始めたとき<pathspec></pathspec>ワイルドカードが以前とは違って機能していることに気付いたとき。通常、私は単一のアスタリスク*をディレクトリ内の何も一致しないワイルドカードと見なしますが、「深い」ワイルドカードとしての連続アスタリスク( ** )は、ディレクトリの名前と一致します。このスタイルのワイルドカードを好む場合は、 glob Magic Signaturesを使用できます!

これは、プロジェクトディレクトリ構造の検索方法をより詳細に制御したい場合に非常に便利です。たとえば、これら2つのgit ls-files Reactプロジェクトをどのように検索するかを見てみましょう。

 git ls-files ':(glob)src/components/*/*。jsx'# "top" jsxコンポーネントgit ls-files ':(glob)src/components/**/*。jsx'# "すべて" jsxコンポーネント

attr

GITは、特定のファイルの「プロパティ」を設定できます。 .gitattributesファイルを使用してこれらのプロパティを設定できます。

 <code># .gitattributes src/components/vendor/* vendored # 设置“vendored”属性src/styles/vendor/* vendored</code>

あなたのためにattr magic署名を使用します<pathspec></pathspec>属性要件を設定します。たとえば、ベンダーから上記のドキュメントを無視することをお勧めします。

 git ls-files ':(attr:!vendored)*。JS'#非ベンダーのJSファイルの検索git ls-files ':( attr:vendored)*。js'#ベンダーのjsファイルの検索

除外します

最後に、「 exclude 」の魔法の署名があります(as :! or :^ )。この署名は、他の魔法の署名とは異なる方法で機能します。他のすべてを解決します<pathspec></pathspec>その後、すべてのexclude署名が解析されます<pathspec></pathspec>、そして、返されたパスからそれを削除します。たとえば、 .spec.jsテストファイルを除外しながら、すべての.jsファイルを検索できます。

 git grep 'foo'  -  '*.js' ':(除外)*。spec.js'#.jsファイルを検索、.spec.jsを除外
git grep 'foo'  -  '*.js' ':!*。spec.js'。 #上記と同じ略語

コンビネーション署名

あなたをシングルに制限するものは何もありません<pathspec></pathspec>複数の魔法の署名を使用してください!魔法の言葉を括弧内のコンマで分離することで、複数の署名を使用できます。たとえば、リポジトリの下部( topを使用)、ケース非感受性( icaseを使用)、著者コードのみ( attrを使用してベンダーファイルを無視する)を使用する場合、GLOBスタイルのワイルドカード( globを使用)を使用する場合、次のことを行うことができます。

 git ls-files- ':(トップ、icase、glob、attr:!vendored)src/components/*/*。jsx'

組み合わせることができない2つの魔法の署名は、 globliteralです。これはGit Glossaryで言及されており、おそらくどのドキュメントでも読んだ私のお気に入りの文です。

グローブマジックは、文字通りの魔法と両立しません。

<pathspec></pathspec>これは多くのGITコマンドの不可欠な部分ですが、その柔軟性はすぐには見えません。ワイルドカードと魔法の署名の使用方法を学ぶことで、Gitコマンドラインで能力を2倍にすることができます。

以上がgit pathspecsとそれらの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
「ポッドキャストにサブスクライブ」リンクはどこにすべきですか?「ポッドキャストにサブスクライブ」リンクはどこにすべきですか?Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

ブラウザエンジンの多様性ブラウザエンジンの多様性Apr 16, 2025 pm 12:02 PM

彼らが2013年にChromeに行ったとき、私たちはオペラを失いました。今年初めにChromeになったとき、Edgeと同じ取引。マイク・テイラーはこれらの変更を「減少させて」と呼びました

Web共有に関するUXの考慮事項Web共有に関するUXの考慮事項Apr 16, 2025 am 11:59 AM

Trashy ClickBaitサイトから出版物の最大の8月まで、共有ボタンは長い間ウェブ全体でユビキタスでした。それでも、これらは議論の余地があります

毎週のプラットフォームニュース:AppleはWebコンポーネント、プログレッシブHTMLレンダリング、自己ホストの重要なリソースを展開しています毎週のプラットフォームニュース:AppleはWebコンポーネント、プログレッシブHTMLレンダリング、自己ホストの重要なリソースを展開していますApr 16, 2025 am 11:55 AM

今週のラウンドアップでは、AppleはWebコンポーネント、InstagramがどのようにInsta-Loadingスクリプトであるか、自己ホストの重要なリソースのための考えのための食べ物に入ります。

git pathspecsとそれらの使用方法git pathspecsとそれらの使用方法Apr 16, 2025 am 11:53 AM

gitコマンドのドキュメントを調べていたとき、それらの多くが選択肢があることに気付きました。私は当初、これはただのものだと思っていました

製品画像のカラーピッカー製品画像のカラーピッカーApr 16, 2025 am 11:49 AM

難しい問題のように聞こえます。私たちはしばしば、何千もの色で製品ショットを持っていないので、withをひっくり返すことができます。私たちもそうしません

ReactとThemeproviderを使用した暗いモードの切り替えReactとThemeproviderを使用した暗いモードの切り替えApr 16, 2025 am 11:46 AM

ウェブサイトにダークモードオプションがあるときが好きです。ダークモードにより、ウェブページが読みやすくなり、目がリラックスしているように感じます。を含む多くのウェブサイト

HTMLダイアログ要素を使用したいくつかの実践HTMLダイアログ要素を使用したいくつかの実践Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。