Задний план
Использование Git 1.8.1.1 в Linux. Репозиторий выглядит следующим образом:
master
book
Подмодуль был создан следующим образом:
$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
book
Подмодуль чист:
$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
Проблема
Мастер, с другой стороны, показывает, что для подмодуля книги есть «новые коммиты»:
$ cd /path/to/master/
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: book (new commits)
#
no changes added to commit (use "git add" and/or "git commit -a")
Git должен полностью игнорировать каталог подмодуля, чтобы мастер тоже был чист:
$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean
Неудачная попытка №1 - грязная
В master/.gitmodules
соответствии с этим ответом внутри файла находится следующее :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = dirty
Неудачная попытка №2 - без отслеживания
master/.gitmodules
В соответствии с этим ответом изменено на следующее :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = untracked
Неудачная попытка №3 - showUntrackedFiles
master/.git/config
В соответствии с этим ответом отредактировано следующее :
[status]
showUntrackedFiles = no
Неудачная попытка №4 - игнорировать
Добавлен каталог книг в главный файл игнорирования:
$ cd /path/to/master/
$ echo book > .gitignore
Неудачная попытка №5 - клонировать
Добавлен каталог книг в мастер следующим образом:
$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book
Вопрос
Как book
подмодуль может находиться в собственном каталоге master
репозитория в репозитории, но при этом git игнорирует book
подмодуль? То есть не должно отображаться следующее:
#
# modified: book (new commits)
#
Как подавить это сообщение при выполнении git status
в главном репозитории?
Статья о ловушках подмодуля git предполагает, что это неправильное использование подмодуля?