Hintergrund
Verwenden von Git 1.8.1.1 unter Linux. Das Repository sieht wie folgt aus:
master
book
Das Submodul wurde wie folgt erstellt:
$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
Das book
Submodul ist sauber:
$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
Problem
Der Master hingegen zeigt, dass es "neue Commits" für das Buch-Submodul gibt:
$ 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 sollte das Submodulverzeichnis vollständig ignorieren, damit der Master auch sauber ist:
$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean
Fehlgeschlagener Versuch Nr. 1 - schmutzig
In der Datei master/.gitmodules
befindet sich gemäß dieser Antwort Folgendes :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = dirty
Fehlgeschlagener Versuch Nr. 2 - nicht verfolgt
Gemäß master/.gitmodules
dieser Antwort wurde Folgendes geändert :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = untracked
Fehlgeschlagener Versuch Nr. 3 - showUntrackedFiles
master/.git/config
Nach dieser Antwort wie folgt bearbeitet :
[status]
showUntrackedFiles = no
Fehlgeschlagener Versuch Nr. 4 - ignorieren
Das Buchverzeichnis wurde zur Master-Ignorierdatei hinzugefügt:
$ cd /path/to/master/
$ echo book > .gitignore
Fehlgeschlagener Versuch Nr. 5 - Klon
Das Buchverzeichnis wurde dem Master wie folgt hinzugefügt:
$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book
Frage
Wie kann sich das book
Submodul in einem eigenen Repository-Verzeichnis unter dem master
Repository befinden, ohne dass Git das book
Submodul ignoriert ? Das heißt, Folgendes sollte nicht angezeigt werden:
#
# modified: book (new commits)
#
Wie kann diese Nachricht bei der Ausführung git status
im Master-Repository unterdrückt werden ?
Ein Artikel über Fallstricke bei Git-Submodulen legt nahe, dass dies eine unangemessene Verwendung von Submodulen ist.