いいえ、サブモジュールをに追加する必要はありません。.gitignore
親がサブモジュールから表示するのはgitlink(特別なエントリ、mode 160000
)です。
つまり、サブモジュールで直接行われた変更の後には、親ディレクトリでコミットする必要があります。
このようにして、親ディレクトリはサブモジュールの状態に対する正しいコミットを記録します。そのコミットは上記の「gitlink」です。
このポリシーの詳細については、「gitサブモジュールの更新(サブモジュールの本質)」を参照してください。
サブモジュールの背後にある主なアイデアは、特定のコミットで他のリポジトリを参照するコンポーネントベースのアプローチです。ただし、これらのサブモジュールで何かを変更した場合は、親リポジトリでもそれらの参照を更新する必要があります。
Git 2.13(2017年第2四半期)では、gitlinkを無視しなくても、次のコマンドでサブモジュールを無視できることに注意してください。
git config submodule.<name>.active false
詳細については、「gitサブモジュールの新しいコミットを無視する」を参照してください。
注:Git 2.15.x / 2.16(2018年第1四半期)では、サブモジュールを無視する方が正確です。
" git status --ignored --untracked
"は、ディレクトリ自体を無視されたものとして表示するのではなく、無視されたディレクトリに埋め込まれ、他のプロジェクトのファイルを一覧表示した別のプロジェクトの作業ツリーで停止しませんでした。
Johannes Schindelin()によるcommit fadb482(2017年10月25日)を参照してください。(合併によりJunio C浜野- -でda7996aをコミットする、2017年11月6日)dscho
gitster
status
:除外されたディレクトリのサブモジュールに混乱しないでください
関数にexclude
フラグを細心の注意を払って渡し、treat_directory()
再帰時に追跡されないのではなく、関数内のファイルが除外されることを示すことができます。
しかし、まだサブモジュールを同じように扱っていません。
そのため、git status --ignored --untracked
サブモジュールで
submodule
gitignored中tracked/
「のサブモジュールを示すだろうUntracked files
」セクション、例えば
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
tracked/submodule/
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/initial.t
代わりに、「Ignored files
」セクションにサブモジュールを表示する必要があります。
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/