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つの魔法の署名は、 glob
とliteral
です。これはGit Glossaryで言及されており、おそらくどのドキュメントでも読んだ私のお気に入りの文です。
グローブマジックは、文字通りの魔法と両立しません。
<pathspec></pathspec>
これは多くのGITコマンドの不可欠な部分ですが、その柔軟性はすぐには見えません。ワイルドカードと魔法の署名の使用方法を学ぶことで、Gitコマンドラインで能力を2倍にすることができます。
以上がgit pathspecsとそれらの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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