セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.45.1 → 2.50.1 変更なし
-
2.45.0
2024-04-29
- 2.43.1 → 2.44.4 変更なし
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 変更なし
-
2.38.0
2022-10-02
- 2.32.1 → 2.37.7 変更なし
-
2.32.0
2021-06-06
- 2.30.1 → 2.31.8 変更なし
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
2020-10-19
- 2.27.1 → 2.28.1 変更なし
-
2.27.0
2020-06-01
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
2020-03-22
- 2.25.2 → 2.25.5 変更なし
-
2.25.1
2020-02-17
- 2.24.1 → 2.25.0 変更なし
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 変更なし
-
2.22.0
2019-06-07
- 2.20.1 → 2.21.4 変更なし
-
2.20.0
2018-12-09
- 2.19.1 → 2.19.6 変更なし
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 変更なし
-
2.18.0
2018-06-21
- 2.16.6 → 2.17.6 変更なし
- 2.15.4 変更なし
-
2.14.6
2019-12-06
- 2.13.7 変更なし
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 変更なし
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.7.6 変更なし
-
2.6.7
2017-05-05
- 2.2.3 → 2.5.6 変更なし
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
概要
git grep [-a | --text] [-I] [--textconv] [-i | --ignore-case] [-w | --word-regexp] [-v | --invert-match] [-h|-H] [--full-name] [-E | --extended-regexp] [-G | --basic-regexp] [-P | --perl-regexp] [-F | --fixed-strings] [-n | --line-number] [--column] [-l | --files-with-matches] [-L | --files-without-match] [(-O | --open-files-in-pager) [<pager>]] [-z | --null] [ -o | --only-matching ] [-c | --count] [--all-match] [-q | --quiet] [--max-depth <depth>] [--[no-]recursive] [--color[=<when>] | --no-color] [--break] [--heading] [-p | --show-function] [-A <post-context>] [-B <pre-context>] [-C <context>] [-W | --function-context] [(-m | --max-count) <num>] [--threads <num>] [-f <file>] [-e] <pattern> [--and|--or|--not|(|)|-e <pattern>…] [--recurse-submodules] [--parent-basename <basename>] [ [--[no-]exclude-standard] [--cached | --untracked | --no-index] | <tree>…] [--] [<pathspec>…]
説明
作業ツリー内の追跡対象ファイル、インデックスファイルに登録されたブロブ、または指定されたツリーオブジェクト内のブロブから、指定されたパターンを探します。パターンは、改行文字で区切られた1つ以上の検索式からなるリストです。空の文字列の検索式は、すべての行に一致します。
オプション
- --cached
-
作業ツリー内の追跡対象ファイルを検索する代わりに、インデックスファイルに登録されたブロブを検索します。
- --untracked
-
作業ツリー内の追跡対象ファイルに加えて、追跡対象外のファイルも検索します。
- --no-index
-
Gitによって管理されていない、または現在のディレクトリがGitによって管理されていることを無視して、現在のディレクトリ内のファイルを検索します。これは、通常の
grep
(1
)ユーティリティを-r
オプションを指定して実行するのとかなり似ていますが、パスを制限するためのパス仕様パターンを使用するなど、いくつかの追加の利点があります。詳細については、gitglossary[7]のpathspecエントリを参照してください。このオプションは、
--cached
または--untracked
と同時に使用することはできません。下記のCONFIGURATIONのgrep.fallbackToNoIndex
も参照してください。 - --no-exclude-standard
-
.gitignore
メカニズムを考慮せず、無視されたファイルも検索します。--untracked
と一緒に使用する場合のみ有用です。 - --exclude-standard
-
.gitignore
メカニズムで指定された無視ファイルは考慮しません。--no-index
を使って現在のディレクトリのファイルを検索する場合のみ有用です。 - --recurse-submodules
-
リポジトリでアクティブかつチェックアウトされている各サブモジュール内を再帰的に検索します。<tree>オプションと組み合わせて使用する場合、すべてのサブモジュール出力のプレフィックスは親プロジェクトの<tree>オブジェクト名になります。このオプションは
--untracked
と同時に使用できず、--no-index
が指定されている場合は効果がありません。 - -a
- --text
-
バイナリファイルをテキストとして処理します。
- --textconv
-
textconv フィルター設定を尊重します。
- --no-textconv
-
textconv フィルター設定を尊重しません。これがデフォルトです。
- -i
- --ignore-case
-
パターンとファイルの間の大文字小文字の違いを無視します。
- -I
-
バイナリファイル内でパターンを一致させません。
- --max-depth <depth>
-
コマンドラインで与えられた各<pathspec>に対して、ディレクトリの階層を最大<depth>レベルまで降下します。値-1は制限なしを意味します。<pathspec>にアクティブなワイルドカードが含まれている場合、このオプションは無視されます。つまり、「a*」が「a*」という名前のディレクトリに一致する場合でも、「*」は文字通り一致するため、--max-depthは依然として有効です。
- -r
- --recursive
-
--max-depth=-1
と同じです。これがデフォルトです。 - --no-recursive
-
--max-depth=0
と同じです。 - -w
- --word-regexp
-
パターンは単語の境界でのみ一致します (行の先頭から始まるか、非単語文字に先行される場合。行の末尾で終わるか、非単語文字に続く場合)。
- -v
- --invert-match
-
一致しない行を選択します。
- -h
- -H
-
デフォルトでは、このコマンドは各一致ファイルの名前を表示します。
-h
オプションは、この出力を抑制するために使用されます。-H
は完全性のために存在し、コマンドラインで以前に与えられた-h
を上書きする以外は何もしません。 - --full-name
-
サブディレクトリから実行する場合、通常、コマンドは現在のディレクトリに対する相対パスを出力します。このオプションは、プロジェクトのトップディレクトリに対する相対パスを出力するように強制します。
- -E
- --extended-regexp
- -G
- --basic-regexp
-
パターンにPOSIX拡張/基本正規表現を使用します。デフォルトは基本正規表現です。
- -P
- --perl-regexp
-
パターンにPerl互換の正規表現を使用します。
これらのタイプの正規表現のサポートは、オプションのコンパイル時依存関係です。Git がそれらのサポートなしでコンパイルされた場合、このオプションを指定すると終了します。
- -F
- --fixed-strings
-
パターンに固定文字列を使用します(パターンを正規表現として解釈しません)。
- -n
- --line-number
-
一致する行に、行番号をプレフィックスとして付けます。
- --column
-
一致する行の先頭から、最初のマッチの1から始まるバイトオフセットをプレフィックスとして付けます。
- -l
- --files-with-matches
- --name-only
- -L
- --files-without-match
-
一致するすべての行を表示する代わりに、一致を含む(または含まない)ファイルの名前のみを表示します。git diffとの互換性を高めるために、
--name-only
は--files-with-matches
の同義語です。 - -O[<pager>]
- --open-files-in-pager[=<pager>]
-
一致するファイルをページャで開きます(grepの出力ではなく)。ページャが「less」または「vi」で、ユーザーが1つのパターンのみを指定した場合、最初のファイルは自動的に最初の一致箇所に配置されます。
pager
引数はオプションです。指定する場合、スペースを入れずにオプションに続けて記述する必要があります。pager
が指定されない場合、デフォルトのページャが使用されます(git-config[1]のcore.pager
を参照)。 - -z
- --null
-
出力のパス名に区切り文字として\0を使用し、それらをそのまま出力します。このオプションがない場合、「通常ではない」文字を含むパス名は、設定変数
core.quotePath
で説明されているように引用符で囲まれます(git-config[1]を参照)。 - -o
- --only-matching
-
一致する行の一致する (空ではない) 部分のみを、それぞれ別の出力行に出力します。
- -c
- --count
-
一致する行をすべて表示する代わりに、一致する行数を表示します。
- --color[=<when>]
-
色付きの一致を表示します。値は always (デフォルト), never, または auto のいずれかである必要があります。
- --no-color
-
設定ファイルでカラー出力がデフォルトになっている場合でも、一致の強調表示をオフにします。
--color=never
と同じです。 - --break
-
異なるファイルからのマッチの間に空行を出力します。
- --heading
-
表示される各行の先頭ではなく、そのファイル内のマッチの上にファイル名を表示します。
- -p
- --show-function
-
一致する行自体が関数名でない限り、一致の関数名を含む先行する行を表示します。名前は
git
diff
がパッチのチャンクヘッダーを決定するのと同じ方法で決定されます(gitattributes[5]のカスタムチャンクヘッダーの定義を参照)。 - -<num>
- -C <num>
- --context <num>
-
<num>行の前後を表示し、連続するマッチグループの間に
--
を含む行を挿入します。 - -A <num>
- --after-context <num>
-
<num>行の後続行を表示し、連続するマッチグループの間に
--
を含む行を挿入します。 - -B <num>
- --before-context <num>
-
<num>行の先行行を表示し、連続するマッチグループの間に
--
を含む行を挿入します。 - -W
- --function-context
-
以前の関数名を含む行から次の関数名の手前までの周囲のテキストを表示し、一致が見つかった関数全体を効果的に表示します。関数名は
git
diff
がパッチのチャンクヘッダーを決定するのと同じ方法で決定されます(gitattributes[5]のDefining a custom hunk-headerを参照)。 - -m <num>
- --max-count <num>
-
ファイルごとの一致数を制限します。
-v
または--invert-match
オプションを使用すると、指定された数の非一致後に検索が停止します。値-1は無制限の結果を返します(デフォルト)。値0は、ゼロ以外のステータスですぐに終了します。 - --threads <num>
-
使用する
grep
ワーカー・スレッドの数です。詳細については、NOTES ON THREADS および CONFIGURATION のgrep.threads
を参照してください。 - -f <file>
-
<file>からパターンを1行ずつ読み込みます。
<file>を介してパターンを渡すことで、\0を含む検索パターンを提供できます。
すべてのパターンタイプが\0を含むパターンをサポートしているわけではありません。指定されたパターンタイプがそのようなパターンをサポートできない場合、Gitはエラーを返します。PCRE v2バックエンドに対してコンパイルされた
--perl-regexp
パターンタイプは、これらの種類のパターンに対して最も広範なサポートを持っています。Gitのバージョン2.23.0以前では、\0を含むパターンは黙って固定と見なされていました。これは文書化されたことはなく、例えば\0を含む非ASCIIパターンと
--ignore-case
の間に奇妙で文書化されていない相互作用もありました。将来のバージョンでは、より多くの検索バックエンドで\0を含むパターンをサポートするようになるかもしれませんが、それまでは、問題のパターンタイプがそれらをサポートしない場合は終了します。
- -e
-
次のパラメータはパターンです。このオプションは、
-
で始まるパターンに使用する必要があり、ユーザー入力をgrepに渡すスクリプトで使用する必要があります。複数のパターンはorで結合されます。 - --and
- --or
- --not
- ( … )
-
複数のパターンをブール式でどのように結合するかを指定します。
--or
がデフォルトの演算子です。--and
は--or
よりも優先度が高いです。-e
はすべてのパターンに使用する必要があります。 - --all-match
-
--or
で結合された複数のパターン式を指定する場合、このフラグは、それらのすべてに一致する行を持つファイルに一致を制限するために指定されます。 - -q
- --quiet
-
一致した行は出力しません。代わりに、一致があればステータス0で終了し、一致がなければゼロ以外のステータスで終了します。
- <tree>…
-
作業ツリー内の追跡対象ファイルを検索する代わりに、指定されたツリー内のブロブを検索します。
- --
-
オプションの終了を示します。残りのパラメータは<pathspec>リミッターです。
- <pathspec>…
-
指定した場合、検索は少なくとも1つのパターンに一致するパスに限定されます。先行パスの一致とglob(7)パターンがサポートされています。
<pathspec>構文の詳細については、gitglossary[7]のpathspecエントリを参照してください。
例
git
grep
time_t'
--
*.
[ch
]-
作業ディレクトリとそのサブディレクトリ内のすべての追跡対象の.cおよび.hファイルから
time_t
を検索します。 - git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)
-
#define
と、MAX_PATH
またはPATH_MAX
のいずれかを含む行を検索します。 git
grep
--all-match
-e
NODE
-e
Unexpected
-
NODE
またはUnexpected
の両方に一致する行を持つファイルで、これらのいずれかの行を持つファイルを検索します。 git
grep
solution
--
:^Documentation
-
solution
を検索し、Documentation
内のファイルは除外します。
スレッドに関する注意
--open-files-in-pager
が使用される場合、--threads
オプション(およびgrep.threads
設定)は無視され、単一スレッド実行が強制されます。
オブジェクトストアをgrepする場合(--cached
またはツリーオブジェクトを指定した場合)、--textconv
が指定され、テキスト変換が多すぎる場合、複数のスレッドで実行すると単一スレッドよりもパフォーマンスが低下する可能性があります。したがって、この場合にパフォーマンスが低い場合は、--threads=1
を使用することが望ましいかもしれません。
設定
このセクションのこの行より下のすべての内容は、git-config[1] ドキュメントから選択的に含まれています。内容はそちらで見られるものと同じです。
- grep.lineNumber
-
trueに設定すると、デフォルトで
-n
オプションが有効になります。 - grep.column
-
true に設定すると、デフォルトで
--column
オプションが有効になります。 - grep.patternType
-
デフォルトのマッチング動作を設定します。値としてbasic、extended、fixed、またはperlを使用すると、それぞれ
--basic-regexp
、--extended-regexp
、--fixed-strings
、または--perl-regexp
オプションが有効になり、値defaultを使用するとgrep.extendedRegexp
オプションを使用してbasicとextendedのどちらかを選択します。 - grep.extendedRegexp
-
true に設定すると、デフォルトで
--extended-regexp
オプションが有効になります。このオプションは、grep.patternType
オプションが default 以外の値に設定されている場合、無視されます。 - grep.threads
-
使用するgrepワーカー・スレッドの数。設定されていない場合(または0に設定されている場合)、Gitは利用可能な論理コアの数だけスレッドを使用します。
- grep.fullName
-
true に設定すると、デフォルトで
--full-name
オプションが有効になります。 - grep.fallbackToNoIndex
-
true に設定されている場合、
git
grep
が Git リポジトリの外部で実行されたときに、git
grep
--no-index
にフォールバックします。デフォルトは false です。
GIT
git[1]スイートの一部