2016-05-11 2 views
6

Прежде всего, я видел .vs\config\applicationhost.config in source control.Почему applicationhost.config все еще добавляется в исходный элемент управления, даже думал, что он находится в gitignore.

Мы работаем в команде, а Visual Studio меняет какой-то путь внутри файла applicationhost.config. Мы должны исключить это. В моем .gitignore файле, я добавил:

/.vs/config/applicationhost.config

Однако в каждой фиксации, это снова добавляется в мерзавец. До версии VS2015 Update 2 это не проблема, но что-то изменилось на git-интеграцию с VS после этого обновления, и теперь оно включено. Всякий раз, когда мои работники вносят изменения в ветку, их IIS Express терпит неудачу из-за изменений в этом файле (у него есть пути, локальные к моим собственным компьютерам и т. Д.) И наоборот.

Как полностью вытащить этот файл из источника управления?

+0

Возможный дубликат [Игнорировать файлы, которые уже были переданы в репозиторий Git] (http://stackoverflow.com/questions/1139762/ignore-files-that-have-already-been-committed-to-a- git-репозиторий) – MrTux

ответ

5

Попробуйте команду:

git rm /.vs/config/applicationhost.config 

Затем вносить изменения в репозиторий.

Линия в .gitignore просто дать мерзавцу информацию, что этот файл не должен быть указан в качестве «неотслеживаемых файлов» в выход состояния мерзавца

+0

Зачем это проголосовало? Файл генерируется VS, удаление файла не вызывает каких-либо проблем для VS. Добавление его в .gitignore и удаление его из хранилища кажется прекрасным. Я что-то упускаю? –

+0

Немного огляделся и нашел этот вопрос. http: // stackoverflow.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository У кого лучшие ответы. –

12

У вас есть applicationhost.config файл уже в хранилище, прежде чем добавить в .gitignore файл?

Если это так, вам нужно использовать команду git rm --cached [file].

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

EDIT:

Как я совершенно забыл: Над раствора работает хранилище, поэтому все разработчики рабочий будет вынужден поддерживать свою собственную копию.

Чтобы предотвратить ублюдок от обнаружения изменений вы также должны использовать это: git update-index --assume-unchanged [path_or_file] А если - в будущем - вы хотите, чтобы снова начать отслеживать изменения вам необходимо восстановить обновление с помощью: git update-index --no-assume-unchanged <file>

И в см. файлы с пометкой --assume-uchanged flag Вы можете использовать это: git ls-files -v | grep '^[[:lower:]]' См. документацию по git ls-files.

Я считаю, что запись в блоге this может быть более описательной.

+0

Сделал это, он удалил файл из git. Затем я нажал, мой друг потянулся, и проблема все еще продолжается. –

+0

Теперь есть два варианта: вы можете сохранить свою собственную локальную копию, используя ту же инструкцию, или можете обновить индекс с помощью: 'git update-index --assume-unchanged'. Я обновляю ответ за секунду. –

+0

@ CanPoyrazoğlu Я не уверен, как уведомлять о SO работает, поэтому на всякий случай: я обновил ответ. Надеюсь, это поможет! –