tło
Korzystanie z Git 1.8.1.1 w systemie Linux. Repozytorium wygląda następująco:
master
book
Podmoduł został utworzony w następujący sposób:
$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
book
Modułem jest czysty:
$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
Problem
Z drugiej strony wzorzec pokazuje, że dla podmodułu książki istnieją „nowe zatwierdzenia”:
$ 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 powinien całkowicie zignorować katalog podmodułów, aby master również był czysty:
$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean
Nieudana próba nr 1 - zabrudzona
Wewnątrz pliku master/.gitmodules
jest następująca, zgodnie z tą odpowiedzią :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = dirty
Nieudana próba nr 2 - nieśledzony
Zmieniono master/.gitmodules
na następujące, zgodnie z tą odpowiedzią :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = untracked
Nieudana próba nr 3 - showUntrackedFiles
Zredagowano master/.git/config
następujące, zgodnie z tą odpowiedzią :
[status]
showUntrackedFiles = no
Nieudana próba nr 4 - zignoruj
Dodano katalog książek do głównego pliku ignorowania:
$ cd /path/to/master/
$ echo book > .gitignore
Nieudana próba nr 5 - klon
Dodano katalog książek do wzorca w następujący sposób:
$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book
Pytanie
W jaki sposób book
moduł podrzędny może znajdować się we własnym katalogu master
repozytorium w repozytorium, a git może zignorować book
moduł podrzędny? Oznacza to, że nie powinny być wyświetlane następujące informacje:
#
# modified: book (new commits)
#
Jak pominąć ten komunikat podczas wykonywania git status
w repozytorium głównym?
Artykuł o pułapkach podmodułu git sugeruje, że jest to niewłaściwe użycie modułu podrzędnego?