セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
メール
外部システム
サーバー管理
- 2.45.1 → 2.47.0 変更なし
-
2.45.0
04/29/24
- 2.43.1 → 2.44.2 変更なし
-
2.43.0
11/20/23
- 2.38.1 → 2.42.3 変更なし
-
2.38.0
10/02/22
- 2.32.1 → 2.37.7 変更なし
-
2.32.0
06/06/21
- 2.30.1 → 2.31.8 変更なし
-
2.30.0
12/27/20
- 2.29.1 → 2.29.3 変更なし
-
2.29.0
10/19/20
- 2.27.1 → 2.28.1 変更なし
-
2.27.0
06/01/20
- 2.26.1 → 2.26.3 変更なし
-
2.26.0
03/22/20
- 2.25.2 → 2.25.5 変更なし
-
2.25.1
02/17/20
- 2.24.1 → 2.25.0 変更なし
-
2.24.0
11/04/19
- 2.22.1 → 2.23.4 変更なし
-
2.22.0
06/07/19
- 2.20.1 → 2.21.4 変更なし
-
2.20.0
12/09/18
- 2.19.1 → 2.19.6 変更なし
-
2.19.0
09/10/18
- 2.18.1 → 2.18.5 変更なし
-
2.18.0
06/21/18
- 2.16.6 → 2.17.6 変更なし
- 2.15.4 変更なし
-
2.14.6
12/06/19
- 2.13.7 変更なし
-
2.12.5
09/22/17
- 2.10.5 → 2.11.4 変更なし
-
2.9.5
07/30/17
-
2.8.6
07/30/17
- 2.7.6 変更なし
-
2.6.7
05/05/17
- 2.2.3 → 2.5.6 変更なし
-
2.1.4
12/17/14
-
2.0.5
12/17/14
SYNOPSIS
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>…]
DESCRIPTION
作業ツリー内の追跡対象ファイル、インデックスファイルに登録されたブロブ、または指定されたツリーオブジェクト内のブロブで、指定されたパターンを検索します。パターンは、改行文字で区切られた1つ以上の検索式のリストです。検索式として空文字列を指定すると、すべての行に一致します。
OPTIONS
- --cached
-
作業ツリー内の追跡対象ファイルを検索する代わりに、インデックスファイルに登録されたブロブを検索します。
- --untracked
-
作業ツリー内の追跡対象ファイルの検索に加えて、追跡されていないファイルも検索します。
- --no-index
-
Gitによって管理されていない、または現在のディレクトリがGitによって管理されていることを無視して、現在のディレクトリ内のファイルを検索します。これは、
-r
オプションが指定された通常のgrep(1)
ユーティリティを実行することと非常によく似ていますが、パスを制限するためにパス仕様パターンを使用するなど、いくつかの追加の利点があります。詳細については、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 がそれらのサポート付きでコンパイルされなかった場合、このオプションを提供すると、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>]
-
色付きの一致を表示します。値は、常に(デフォルト)、never、またはautoである必要があります。
- --no-color
-
設定ファイルでデフォルトがカラー出力の場合でも、一致箇所の強調表示をオフにします。
--color=never
と同じです。 - --break
-
異なるファイルからのマッチの間に行を空けます。
- --heading
-
表示する各行の先頭ではなく、ファイル内のマッチの上部にファイル名を表示します。
- -p
- --show-function
-
マッチした行が関数名自体でない限り、マッチの関数名を含む前の行を表示します。名前は
git diff
がパッチのhunkヘッダーを判断するのと同じ方法で決定されます(gitattributes[5]のカスタムhunk-headerの定義を参照してください)。 - -<num>
- -C <num>
- --context <num>
-
先頭と末尾の行を <num> 行表示し、連続するマッチのグループ間に
--
を含む行を配置します。 - -A <num>
- --after-context <num>
-
末尾の行を <num> 行表示し、連続するマッチのグループ間に
--
を含む行を配置します。 - -B <num>
- --before-context <num>
-
先頭の行を <num> 行表示し、連続するマッチのグループ間に
--
を含む行を配置します。 - -W
- --function-context
-
関数名を含む前の行から、次の関数名の直前の行まで、周辺のテキストを表示します。これにより、マッチが見つかった関数全体が効果的に表示されます。関数名は、
git diff
がパッチのhunkヘッダーを判断するのと同じ方法で決定されます(gitattributes[5]のカスタムhunk-headerの定義を参照してください)。 - -m <num>
- --max-count <num>
-
ファイルごとのマッチ数を制限します。
-v
または--invert-match
オプションを使用する場合、指定された数の非マッチ後に検索は停止します。-1 の値は、無制限の結果を返します(デフォルト)。0 の値は、非ゼロのステータスですぐに終了します。 - --threads <num>
-
使用する
grep
ワーカー スレッドの数。「スレッドに関する注記」と「設定」のgrep.threads
を参照してください。 - -f <file>
-
<file> からパターンを 1 行ずつ読み取ります。
<file> 経由でパターンを渡すと、\0 を含む検索パターンを提供できます。
すべてのパターン タイプが \0 を含むパターンをサポートしているわけではありません。特定のパターン タイプがそのようなパターンをサポートできない場合、Git はエラーを出します。PCRE v2 バックエンドに対してコンパイルされた場合の
--perl-regexp
パターン タイプは、これらのタイプのパターンを最も幅広くサポートしています。Git の 2.23.0 より前のバージョンでは、\0 を含むパターンは、暗黙的に固定と見なされていました。これはドキュメント化されておらず、たとえば、\0 および
--ignore-case
を含む非 ASCII パターン間で、奇妙でドキュメント化されていない相互作用もありました。今後のバージョンでは、より多くの検索バックエンドで \0 を含むパターンをサポートすることを学習する可能性がありますが、それまでは、問題のパターン タイプがそれらをサポートしていない場合、終了します。
- -e
-
次のパラメータはパターンです。このオプションは
-
で始まるパターンに使用する必要があり、ユーザー入力を grep に渡すスクリプトで使用する必要があります。複数のパターンはorで結合されます。 - --and
- --or
- --not
- ( … )
-
ブール式を使用して、複数のパターンをどのように組み合わせるかを指定します。
--or
はデフォルトの演算子です。--and
は--or
より優先順位が高くなります。-e
は、すべてのパターンに使用する必要があります。 - --all-match
-
--or
で結合された複数のパターン式を指定する場合、このフラグは、それらすべてに一致する行を持つファイルに一致を制限するために指定されます。 - -q
- --quiet
-
一致した行を出力しません。代わりに、一致する場合はステータス 0 で終了し、一致しない場合は非ゼロのステータスで終了します。
- <tree>…
-
ワーキングツリー内の追跡対象ファイルを検索する代わりに、指定されたツリー内の blob を検索します。
- --
-
オプションの終了を通知します。残りのパラメータは <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
-
Documentation
内のファイルを除外して、solution
を検索します。
スレッドに関する注記
--threads
オプション(および grep.threads
設定)は、--open-files-in-pager
が使用されている場合は無視され、シングルスレッドでの実行が強制されます。
オブジェクトストア(--cached
またはツリーオブジェクトを指定して)を grep する場合、--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] スイートの一部