Подмодули Git и очередь состояния - PullRequest
1 голос
/ 05 октября 2010

Я добавил два подмодуля в мой репозиторий vim, и команда git status всегда выводит это:

On branch master
Changed but not updated:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

   modified:   bundle/snipmate
   modified:   bundle/yankring

Я пробежал:

git submodule init
git submodule update
git add .

и ничего не происходит, чтобы заставить его уйти. Есть идеи?

1 Ответ

3 голосов
/ 05 октября 2010

Это, вероятно, связано с изменением, добавленным в git-1.7.0 , когда подмодули помечаются как dirty , если они содержат измененные или неотслеживаемые файлы.

git status имеет опцию --ignore-submodules, чтобы игнорировать определенные изменения. От man git-status:

--ignore-submodules[=<when>]
              Ignore changes to submodules when looking for changes. <when>
              can be either "none", "untracked", "dirty" or "all", which is
              the default. Using "none" will consider the submodule modified
              when it either contains untracked or modified files or its HEAD
              differs from the commit recorded in the superproject and can be
              used to override any settings of the ignore option in git-
              config(1) or gitmodules(5). When "untracked" is used submodules
              are not considered dirty when they only contain untracked
              content (but they are still scanned for modified content).
              Using "dirty" ignores all changes to the work tree of
              submodules, only changes to the commits stored in the
              superproject are shown (this was the behavior before 1.7.0).
              Using "all" hides all changes to submodules (and suppresses the
              output of submodule summaries when the config option
              status.submodulesummary is set).

(эта опция была добавлена ​​только в git-1.7.2 )

...