コマンドシーケンス
mkdir topdir
mkdir another-git-directory
touch fileC
touch fileD
git add .
git commit -m "sub-dir init"
cd ..
touch fileA
touch fileB
git add .
git commit -m "top-dir init"
git ls-files
// fileC と fileD が最上位の git によって追跡されていないことがわかります //
git ls-files -o
// これは fileC と fileD を表示しません追跡されていないファイルとしてのfileD//
私の質問は、「git ls-files -o」を作成して、サブディレクトリ内の追跡されていないファイルを表示するにはどうすればよいですか? git ls-files が追跡されていないすべてのファイルを表示することを期待しているため、git がそのように動作するのはなぜですか (別のサブディレクトリ git 内であっても)?
「git add */.」を使用してサブディレクトリファイルを追跡するためにトップgitを作成できることは知っています...しかし、上記の質問の理由を知りたいです。ありがとう!
ディレクトリ構造
topdir + +-- .git +-- fileA +-- fileB + another-git-directory +-- .git +-- fileC +-- fileD
更新 (6 月 26 日)
このスレッドUnable to track files within Git submodulesと、問題の解決方法を説明するこの URL (cn) http://blog.ossxp.com/2010/01/425/を見つけました。
ソリューション:
git rm --cached another-git-directory #末尾のスラッシュなし
git add another-git-directory/.
gitコミット
「git rm --cached path/to/sub-dir-or-sub-module」は、サブディレクトリをサブモジュールとして扱わないようにトップディレクトリに指示します...私は思う....