Git изменения не отображаются в VS2013 Обновление 2

Я использую Git в VS2013, и мои измененные файлы не отображаются в окне изменений VS.

Когда я изменил файл, но прежде, чем я сохраню его на диск, он появится. Но как только я сохраняю файл на диске, изменение исчезает из окна "Изменения".

Я попытался удалить и переустановить VS2013, но это не помогло. Любые идеи о том, как сохранить изменения в окне после их сохранения?

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

Перед сохранением.

enter image description here

После сохранения изменения файла исчезнет.

enter image description here

Ответ 1

У меня был установлен предварительный просмотр Roslyn. Отключение этого расширения устраняет проблему.

Ответ 2

У меня тоже была эта проблема. Это произошло случайно, и рано или поздно мой статус git был полностью удален из Microsoft git Провайдера надстройки в Visual Studio, хотя это было правильно на git bash.

Оказывается, в моем случае это произойдет, как только я открою соединение с базой данных LocalDb из SQL Management Studio и сохраню соединение. Поэтому я подозреваю, что это может произойти всякий раз, когда процесс блокирует файл, который контролируется Microsoft git Provider.

Надеюсь, это поможет. В моем случае это исправлено!

Ответ 3

даже если это довольно старый вопрос, у меня аналогичная проблема на прошлой неделе на VS2013, и ни один из обходных методов предварительного просмотра для меня не эффективен. При редактировании файла он появляется в списке команд Team Explorer для файлов изменений, но, как только они будут сохранены, они исчезнут из любых списков. Другие инструменты (git bash, черепаха,...) видели их как модификацию и uncommit, но не VS. Я решаю эту проблему в параметре Git в Team Explorer, создав файл .gitIgnore для решения! Надеюсь, это поможет.

Ответ 4

Откройте файл .gitignore с помощью редактора или Notepad ++ и удалите строки, содержащие файлы, которые вы хотите отслеживать.

Ответ 5

Я столкнулся с этой проблемой при добавлении нового, но существующего проекта к моему решению в VS2015. Проблема заключалась в том, что новый проект использовал локальный файл db (.sdf, а также opendb), который был добавлен в корень решения. При попытке выполнить незафиксированные изменения он терпел неудачу, потому что не смог получить доступ к файлу opendb, а vs его удержал.

Я нашел это, используя git для окон и пытаясь выполнить мои изменения. Как только я добавил *opendb в мой .gitignore и повторно открытую Visual Studio, он нашел все мои другие изменения.

Ответ 6

У меня была такая же проблема, и это происходило, потому что все файлы кода находились в подпапке, которая также содержала репозиторий git, и это мешало ему оставаться в разделе "включенные изменения" после сохранения.

Чтобы исправить это, я вошел в подпапку и сменил все имена файлов git на что-то еще (например, переименовал папку .git в z.git,.gitingore в z.gitingorez, ect). После этого все файлы появились в разделе "untracked files" и изменения остались в разделе "включенные изменения" после сохранения.

Ответ 7

Я использую Visual Studio 2017, но у меня была ТОЧНАЯ такая же проблема. Я потратил несколько часов на то, чтобы найти решение.

Решение:

  • Найдите .git folder.
  • Найдите и удалите файл 'index.lock'.
  • Перезапустите Visual Studio.

Надеюсь, это поможет кому-то!

Ответ 8

Надеюсь, это поможет кому-то еще...

Простое решение:

1) Закройте VS 2013 и вручную переименуйте папку решения. 2) Повторно открыть VS 2013. VS предложит вам клонировать решение с сервера, чтобы открыть его. Следуйте подсказкам и клонируйте новую копию решения. 3) Закройте VS 2013 и используйте Beyond Compare (или некоторую другую систему сравнения файлов), чтобы вручную переместить ваши изменения из старого решения в новое решение. 4) Повторно открыть VS 2013. Ваши изменения появятся, и вы сможете передать их в локальный и удаленный репозиторий.

--- Дополнительная информация ---

Была та же проблема. Сделано изменение файла в обновлении VS 2013. 4. Перед сохранением файла изменилось на экране "изменения" (и рядом с элементом в проводнике решений появился галочка). После сохранения элемент больше не отображается на экране "Изменения" (и значок в проводнике решений сменился на блокировку).

Эта проблема может произойти из-за одной из двух последних изменений, внесенных мной в проект, хотя я не успел воспроизвести сценарий.

1) Я вручную (вне VS) сделал некоторые копии/резервные копии для развертывания новой версии стороннего js lib. исходная структура папок: C:\git\решение\webProj\Сценарии\jwplayer\премиум\jwplayer.js C:\ git\решение\webProj\Сценарии\jwplayer\бесплатно\jwplayer.js

новая структура папок: C:\git\решение\webProj\Сценарии\jwplayer \ C:\git\решение\webProj\Сценарии\jwplayer\jwplayer-6.11__MACOSX C:\git\решение\webProj\Сценарии\jwplayer\jwplayer-6,11\jwplayer C:\ git\решение\webProj\Сценарии\jwplayer\jwplayerOriginal\

Это была попытка изолировать jwplayer.js(и другие необходимые файлы) в каталоге jwplayer. В новом каталоге __MACOS были имена файлов, начинающиеся с ".". Там теория о том, что путь к этим файлам может быть броском и ошибкой во время обработки изменений VS 2013 года.

2) Недавно я получил обновления nuget. Предостережение, перед обновлением nuget, я удалил ссылку на файлы .map в базовых js файлах в каталоге сценариев (длинная история). Когда я попытался обновить nuget, nuget распознал изменения и не смог обновить, но все еще обновил web.config и пакеты. Это привело к несоответствию между тем, что было установлено nuget, и тем, что было на самом деле установлено. Я использовал интеграцию VS 2013/ git для "отмены" каждого обновления, но, возможно, что-то пропустил.