Вопрос по git, git-branch, gitignore – GIT: Как сохранить игнорируемые файлы при переключении веток?

6

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

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

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

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

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

Благодарю.

Он будет удален только при первом обновлении для всех. Когда-то всеРепозитории обновлены, файл останется и не будет удален. TheBuzzSaw
Если файл правильно игнорируется, его нельзя трогать при переключении веток. Появляется ли при вводе?git status Mike Weller

Ваш Ответ

3   ответа
1

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

6

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

Путь состоит в том, чтобы удалить файл, который вы не 'не хочу больше отслеживать из индекса с

git rm --cached App.Local.config

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

@mswanson Если файл игнорируется, вы можете переключать ветки по своему желанию - к нему не прикасаться. Таким образом, у вас есть только одна проблема: предоставьте разработчикам шаблон для этого файла. Но вы должны сделать это без мерзости. madhead
если файл игнорируется и вне индекса изменения в файле не теряются и файл не удаляется iberbeu
Если файлы исчезают после изменения ветви, потому что они находятся в индексе. я предлагаю тебеgit rm --cached их, а затем добавить их в.gitignore, Я предполагаю, что когда вы зафиксировали, эти файлы были также зафиксированы. Если дело обстоит иначе, просто откройте другой вопрос, чтобы мы могли обсудить его там iberbeu
@iberbeu У меня такая же проблема, но файл никогда не был в индексе. Я запустил новую ветку с флагом --orphan, затем git rm - кэшировал все, проигнорировал некоторые файлы в .gitignore и зафиксировал. Эти файлы исчезают, когда я переключаю ветви, и я нене знаю, как этого избежать! splinter123
@ splinter123 Посмотри на Экиответ: [stackoverflow.com/questions/15552959/...Короче говоря, вы должны удалить этот файл из всей ветки и всех ее .gitignore, тогда он не исчезнет. Haritsinh Gohil
1

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

Похожие вопросы