GIT: Как сохранить игнорируемые файлы при переключении веток?

У меня есть файл App.Local.config, в котором каждый разработчик имеет свои собственные настройки. Я не хочу, чтобы этот файл проверялся версионным в репозитории GIT, так как каждый раз, когда он будет перезаписываться другими разработчиками, изменения.

Поэтому я удалил файл из репозитория и добавил его в файл игнорирования. Но теперь, когда разработчики переключают ветки, App.Local.config удаляется из их локальной файловой системы.

В конечном итоге, что я хотел бы, это:

  1. репозиторий нового разработчика, получает стартовую версию App.Local.config
  2. dev вносит изменения в App.Local.config. Git будет игнорировать изменения, а не этап / checkin
  3. Dev переключает ветви, изменения в App.Local.config не будут потеряны, а файл не будет удален.

Как я могу это сделать?

Благодарю.

3 ответа

Решение

Вероятно, произошло то, что вы удалили файл из рабочей области, но не из индекса. Если вы сделали это, git думает, что удаление этого файла является изменением, и с этого момента оно будет удалено.

Нужно удалить файл, который вы больше не хотите отслеживать, из индекса с помощью

git rm --cached App.Local.config

а затем добавить этот файл в .gitignoreПри этом у вас больше не будет проблем с файлом

Похоже, этот файл был в индексе один раз. Таким образом, его удаление является изменением. Вы можете добавить его в .gitignore или же .git/info/exclude а затем просто воссоздать его на каждой машине разработчиков.

Вы должны использовать git rm --cached App.Local.config не только в вашей рабочей ветке, но и в той ветке, на которую вы хотите перейти, иначе вы потеряете App.Local.config когда вы переключаетесь обратно на ветку, вы работали, если вы используете только git rm --cached App.Local.config в этой ветке.

Другие вопросы по тегам