последовательность команд
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 как неотслеживаемые файлы //
мой вопрос: как мы можем сделать "git ls-files -o", чтобы показать неотслеживаемые файлы внутри подкаталога?почему git ведет себя так, как я ожидаю, что git ls-files покажет все неотслеживаемые файлы (даже если они находятся внутри другого подкаталога git)?
Я знаю, что мог бы сделать лучший git для отслеживания файлов подкаталога, используя "git add * /." ... но мне интересно знать, почему для вопроса выше.Спасибо!
структура каталогов
topdir +
+-- .git
+-- fileA
+-- fileB
+ another-git-directory +-- .git
+-- fileC
+-- fileD
обновление (26 июня)
Я нашел эту тему Невозможно отследить файлы в подмодулях Git и этот URL (cn) http://blog.ossxp.com/2010/01/425/, который объясняет, как решить проблему.
решение:
git rm - кеширование другого-git-каталога # без косой черты
git add another-git-directory /.
git commit
'git rm --cached path / to / sub-dir-or-sub-module' скажет верхнему каталогу не обрабатывать подчиненный каталог как подмодуль ... Я думаю,....