Файлы Visual Studio скопированы на GitHub, но указаны в .gitignore

Файлы Visual Studio скопированы на GitHub, но указаны в .gitignore

Я не могу понять, что я упускаю, пытаясь помешать Visual Studio 2019 Team Explorer копировать файлы на GitHub, когда они перечислены в файле .gitignore.

Мой файл .gitignore находится в том же каталоге, что и каталог .git. В целом он такой:

# Binaries
/x64/

# VS log files
*.log
*.tlog

# Visual Studio files and folder
/.vs/

Когда я хочу зафиксировать изменения, VS отображает следующее:

введите описание изображения здесь

Я делаюнетхотите зафиксировать Tetris_Game.exe, ни какие-либо файлы .tlog или .log, ни что-либо из папки .vs. Однако, как вы видите, эти файлы и каталог указаны для фиксации.

Что я упускаю из виду, что должно быть совершенно очевидно?

решение1

Это потому, что все эти файлы с расширениями .exe, .tlog и .log также будут присутствовать в вашем репозитории git. Поэтому любые изменения в этих файлах будут отслеживаться наверняка.
Чтобы .gitignore работал как положено, выполните следующие шаги:

  1. Удалите локально все файлы, которые вы хотите игнорировать.
  2. Затем выполните коммит и push. Теперь ваш репозиторий и файл .gitignore находятся в согласованном состоянии.
  3. Перезапустите VS и выполните pull.
  4. Создайте свое решение/проект.

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

решение2

Начальная косая черта /.vs/означает, /x64/что это абсолютные пути от корня файловой системы.

Для ПК с ОС Windows, где репозиторий находится в любом месте на диске C:, ваш .gitignore будет игнорировать файлы в C:\.vs\и C:\x64\.

Удалите начальный слеш и оставьте их просто как .vs/и x64/.
Тогда они будут интерпретироваться как пути, относительные к файлу .gitignore.

Связанный контент