Проблема с измененными файлами, которые отображаются в Git, но не обновляются? - PullRequest
9 голосов
/ 03 марта 2011

У меня есть несколько файлов / папок, которые просто не покидают область подготовки Git?

# 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)
#   (commit or discard the untracked or modified content in submodules)
#
#   modified:   JavaScript/Stand.ard.iz.er (modified content, untracked content)
#   modified:   Site (untracked content)
#   modified:   Template Archives/Template (modified content, untracked content)
#   modified:   Template Archives/Template_Git (modified content, untracked content)
#

Я пытался сделать все, чтобы эти «измененные» файлы были зафиксированы, но безуспешно?

Я пытался ...

git add .
git add *
git add -u
git add {actual full directory path}

... но ничего из этого не работает.

Есть идеи?

Спасибо.

Ответы [ 2 ]

14 голосов
/ 03 марта 2011

Это могут быть субмодули , в этом случае их статус будет отображаться из статуса родительского репо.

Если вы не используете опцию --ignore-submodules[=<when>] git status :

Игнорировать изменения в подмодулях при поиске изменений.
<when> может быть либо "none", "untracked", "dirty" или "all", что является значением по умолчанию.

  • Использование «none» будет рассматривать измененный субмодуль, если он содержит неотслеживаемые или измененные файлы или его HEAD отличается от фиксации, записанной в суперпроекте, и может использоваться для переопределения любых настроек опция игнорирования в git-config или gitmodules.
  • Когда используется «untracked», подмодули не считаются грязными, если они содержат только неотслеживаемый контент (но они все равно сканируются на наличие модифицированного контента).
  • Использование «dirty» игнорирует все изменения в рабочем дереве подмодулей, отображаются только изменения в коммитах, хранящихся в суперпроекте (это было поведение до 1.7.0).
  • Использование «all» скрывает все изменения в подмодулях (и подавляет вывод сводных данных подмодулей, когда установлен config option status.submodulesummary).

В любом случае вам нужно будет добавить и зафиксировать внутри самих подмодулей, прежде чем вы сможете подняться на один уровень (на уровне родительского репо) и увидеть чистый статус.

11 голосов
/ 08 марта 2011

Это может произойти, если вы скопируете в свой проект новую папку, в которой уже есть папка .git.Так что это будет как суб-хранилище в вашем основном хранилище.Решением является просто удаление этой папки .git в новой скопированной подпапке.

...