セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ
デバッグ
メール
外部システム
サーバー管理
- 2.42.1 → 2.47.0 変更なし
-
2.42.0
08/21/23
- 2.32.1 → 2.41.2 変更なし
-
2.32.0
06/06/21
- 2.30.2 → 2.31.8 変更なし
-
2.30.1
02/08/21
- 2.28.1 → 2.30.0 変更なし
-
2.28.0
07/27/20
- 2.25.1 → 2.27.1 変更なし
-
2.25.0
01/13/20
- 2.24.2 → 2.24.4 変更なし
-
2.24.1
12/06/19
-
2.24.0
11/04/19
- 2.23.2 → 2.23.4 変更なし
-
2.23.1
12/06/19
-
2.23.0
08/16/19
- 2.22.3 → 2.22.5 変更なし
-
2.22.2
12/06/19
- 2.22.1 変更なし
-
2.22.0
06/07/19
- 2.21.2 → 2.21.4 変更なし
-
2.21.1
12/06/19
-
2.21.0
02/24/19
- 2.20.3 → 2.20.5 変更なし
-
2.20.2
12/06/19
- 2.20.1 変更なし
-
2.20.0
12/09/18
- 2.19.4 → 2.19.6 変更なし
-
2.19.3
12/06/19
-
2.19.2
11/21/18
- 2.19.1 変更なし
-
2.19.0
09/10/18
- 2.18.3 → 2.18.5 変更なし
-
2.18.2
12/06/19
- 2.18.1 変更なし
-
2.18.0
06/21/18
- 2.17.4 → 2.17.6 変更なし
-
2.17.3
12/06/19
- 2.17.1 → 2.17.2 変更なし
-
2.17.0
04/02/18
- 2.16.6 変更なし
-
2.15.4
12/06/19
- 2.14.6 変更なし
-
2.13.7
05/22/18
- 2.11.4 → 2.12.5 変更なし
-
2.10.5
09/22/17
-
2.9.5
07/30/17
- 2.4.12 → 2.8.6 変更なし
-
2.3.10
09/28/15
- 2.1.4 → 2.2.3 変更なし
-
2.0.5
12/17/14
説明
Git ワークツリーの最上位ディレクトリにある.gitmodules
ファイルは、git-config[1]の要件に一致する構文を持つテキストファイルです。
このファイルには、サブモジュールごとに1つのサブセクションが含まれており、サブセクションの値はサブモジュールの名前です。 git submodule add の--name
オプションでカスタマイズされない限り、名前はサブモジュールが追加されたパスに設定されます。各サブモジュールセクションには、次の必須キーも含まれています。
- submodule.<name>.path
-
Git ワークツリーの最上位ディレクトリを基準とした、サブモジュールをチェックアウトする予定のパスを定義します。パス名は
/
で終わることはできません。すべてのサブモジュールパスは、.gitmodules
ファイル内で一意である必要があります。 - submodule.<name>.url
-
サブモジュールリポジトリをクローンできるURLを定義します。これは、git-clone[1]に渡す準備ができた絶対URL、または(
./
または../
で始まる場合)スーパープロジェクトのオリジンリポジトリを基準とした相対的な場所のいずれかになります。
さらに、いくつかのオプションキーがあります。
- submodule.<name>.update
-
指定されたサブモジュールのデフォルトの更新手順、つまりスーパープロジェクトで
git submodule update
コマンドによってサブモジュールがどのように更新されるかを定義します。これは、git submodule init
によって同じ名前の設定変数を初期化するためにのみ使用されます。ここで許可される値は、checkout、rebase、merge、またはnoneですが、(セキュリティ上の理由から)!commandではありません。git-submodule[1]のupdateコマンドの説明で詳細を確認してください。 - submodule.<name>.branch
-
上流のサブモジュールの更新を追跡するためのリモートブランチ名。このオプションが指定されていない場合、リモート
HEAD
がデフォルトになります。特別な値.
は、サブモジュールのブランチ名が現在のリポジトリの現在のブランチ名と同じであることを示すために使用されます。詳細については、git-submodule[1]のリモートドキュメントを参照してください。 - submodule.<name>.fetchRecurseSubmodules
-
このオプションは、このサブモジュールの再帰的なフェッチを制御するために使用できます。このオプションがスーパープロジェクトの
.git/config
のサブモジュールのエントリにも存在する場合、そこにある設定が.gitmodules
にある設定よりも優先されます。両方の設定は、git fetch
とgit pull
に--[no-]recurse-submodules
オプションを使用することでコマンドラインでオーバーライドできます。 - submodule.<name>.ignore
-
git status
とdiffファミリーがサブモジュールを変更済みと表示する状況を定義します。次の値がサポートされています。- all
-
サブモジュールは変更済みと見なされません(ただし、ステージングされた場合はstatusとcommitの出力に表示されます)。
- dirty
-
サブモジュールのワークツリーへのすべての変更は無視され、サブモジュールの
HEAD
とスーパープロジェクトに記録された状態との間のコミットされた違いのみが考慮されます。 - untracked
-
サブモジュール内の追跡されていないファイルのみが無視されます。コミットされた違いと追跡済みファイルの変更は表示されます。
- none
-
サブモジュールの変更は無視されず、コミットされた違い、および追跡済みファイルと追跡されていないファイルの変更はすべて表示されます。これはデフォルトのオプションです。
このオプションがスーパープロジェクトの
.git/config
のサブモジュールのエントリにも存在する場合、そこにある設定が.gitmodules
にある設定よりも優先されます。両方の設定は、
--ignore-submodules
オプションを使用してコマンドラインでオーバーライドできます。git submodule
コマンドはこの設定の影響を受けません。 - submodule.<name>.shallow
-
trueに設定されている場合、ユーザーが明示的に非シャロークローンを要求しない限り、このサブモジュールのクローンはシャロークローン(履歴の深さ1)として実行されます。
備考
Gitは、ワークツリー内の.gitmodules
ファイルをシンボリックリンクにすることを許可せず、そのようなツリーエントリをチェックアウトすることを拒否します。これは、ファイルにインデックスまたはツリーからアクセスする場合とファイルシステムからアクセスする場合の動作を一致させるため、そしてGitがファイルの内容のセキュリティチェックを確実に実行できるようにするためです。
例
次の.gitmodules
ファイルを考えてみましょう。
[submodule "libfoo"] path = include/foo url = git://foo.com/git/lib.git [submodule "libbar"] path = include/bar url = git://bar.com/git/lib.git
これは、libfoo
とlibbar
という2つのサブモジュールを定義しています。これらはinclude/foo
とinclude/bar
のパスにチェックアウトされることが期待されており、両方のサブモジュールにはサブモジュールのクローンに使用できるURLが指定されています。
GIT
git[1]スイートの一部