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 サイトの他の関連記事を参照してください。

cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

@keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

csScounterSareSareusedTomageautomaticinginginwebdesigns.1)それらは、コンテンツ、リスト、および積極的なものを使用することができます

特にモバイルデバイスでは、スクロールシャドウを使用することは、Chrisが以前にカバーした微妙なUXです。 Geoffは、アニメーションタイムラインプロパティを使用する新しいアプローチをカバーしました。これがさらに別の方法です。

簡単に復習してみましょう。画像マップはHTML 3.2に戻ります。ここで、最初にサーバー側マップを使用してから、マップとエリア要素を使用して画像上でクリック可能な領域を定義したクライアント側マップをマップしました。

State of Devsの調査は現在、参加に対して開かれており、以前の調査とは異なり、コードを除くすべてをカバーしています:キャリア、職場だけでなく、健康、趣味などもあります。

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
