GIT: Как сохранить игнорируемые файлы при переключении веток?
У меня есть файл App.Local.config, в котором каждый разработчик имеет свои собственные настройки. Я не хочу, чтобы этот файл проверялся версионным в репозитории GIT, так как каждый раз, когда он будет перезаписываться другими разработчиками, изменения.
Поэтому я удалил файл из репозитория и добавил его в файл игнорирования. Но теперь, когда разработчики переключают ветки, App.Local.config удаляется из их локальной файловой системы.
В конечном итоге, что я хотел бы, это:
- репозиторий нового разработчика, получает стартовую версию App.Local.config
- dev вносит изменения в App.Local.config. Git будет игнорировать изменения, а не этап / checkin
- 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
в этой ветке.