95 votes

Ignorer les nouveaux commits pour le submodule git

Contexte

Utilisation de Git 1.8.1.1 sous Linux. Le dépôt se présente comme suit :

master
  book

Le sous-module a été créé comme suit :

$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book

En book Le sous-module est propre :

$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean

Problème

Le master, quant à lui, montre qu'il y a de "nouveaux commits" pour le sous-module book :

$ 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 devrait ignorer complètement le répertoire du sous-module, afin que le master soit également propre :

$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean

Échec de la première tentative - sale

Dans le dossier master/.gitmodules est le suivant, selon ce qui suit réponse :

[submodule "book"]
        path = book
        url = https://user@bitbucket.org/user/repo.git
        ignore = dirty

Échec de la tentative #2 - non tracé

Modifié master/.gitmodules à ce qui suit, conformément à ce qui suit réponse :

[submodule "book"]
        path = book
        url = https://user@bitbucket.org/user/repo.git
        ignore = untracked

Échec de la tentative n°3 - showUntrackedFiles

Modifié master/.git/config à ce qui suit, conformément à ce qui suit réponse :

[status]
   showUntrackedFiles = no

Échec de la tentative n° 4 - ignorer

Ajout du répertoire des livres au fichier maître des ignorés :

$ cd /path/to/master/
$ echo book > .gitignore

Tentative ratée #5 - clone

Ajout du répertoire book au master comme suit :

$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book

Question

Comment le book soit dans son propre répertoire de dépôt sous le nom de master mais que git ignore le book sous-module ? C'est-à-dire que ce qui suit ne devrait pas s'afficher :

#
#       modified:   book (new commits)
#

Comment supprimer ce message lors de l'exécution git status dans le référentiel maître ?

Un article sur Les pièges du sous-module git suggère une utilisation inappropriée du sous-module ?

-6voto

think2010 Points 59

Exécuter

git submodule update 

au niveau de la racine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X