Итак, у меня есть хранилище git. Я использую git 1.7.9 под Cygwin/Windows 8.После использования git clean, я удалил файлы, обнаруженные как изменения?
Этот репозиторий git имеет такое странное поведение, что он считает, что некоторые подкаталоги определенного каталога отслеживаются, но фактический каталог, содержащий их, не является.
Таким образом, я получаю странность, как это:
$ git reset --hard
$ git status
#untracked files
foo
$ git clean -fd
removing foo
$ git status
#changes not staged
D foo/bar/whatever.txt
Но тогда, в другую сторону и добавить файлы:
$ git add foo
$ git status
# changes not staged
A foo/bar/whatever.txt
И если я совершаю оттуда, то это будет, конечно, выставлять сумасшедшие конфликты при попытке толчка.
Иногда git reset --hard
исправляет это, но иногда нет. Я нашел лучший способ избавиться от него - это проверить новую ветку, удалить все в моей рабочей копии и запустить git reset --hard
.
Неужели кто-нибудь еще испытывал это странное поведение? Я использую git-tfs, что может означать, что это ошибка в этом, но по большей части это обычный репозиторий git, поэтому я не думаю, что это имеет значение.
Что находится в ваших '.gitignore' (и' foo/.gitignore' и 'foo/bar/.gitignore', если они существуют)? Кроме того, что означает 'git ls-tree -r HEAD - foo' рассказать вам о файлах в' foo', которые отслеживаются? Являются ли символические ссылки 'foo' или' bar' вместо каталогов? – twalberg
возможно (но не вероятно) проблема с .gitattributes с концевыми линиями? Это не проблема git-tfs, потому что git-tfs не касается вашей папки рабочего пространства (особенно, когда вы ее не называете;)) – Philippe
Кстати, вы пробовали перейти на git 1.8? –