Отслеживание игнорируется и - Безрезультатно, как для слияния

В моем Git-репо есть файл конфигурации, который я хотел бы отличать от основного общего репо (он должен отслеживаться), поэтому изменения не заполняются другими разработчиками. Тем не менее, «-assume-unchanged» работает хорошо, чтобы сохранить мои изменения локально, одновременно нажимая код в другой репозиторий. Проблема становится, когда мне нужно получить обновленный код, и я тяну или слияние из общего репо в мой локальный, то я получаю ошибку:

error: Your local changes to the following files would be overwritten by merge:
    app/grails-app/conf/BuildConfig.groovy
Please, commit your changes or stash them before you can merge.
Aborting

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

git update-index --no-assume-unchanged app/grails-app/conf/BuildConfig.groovy
git stash save "config file"

а затем после слияния верните мою измененную конфигурацию:

git stash apply

Как избежать этих дополнительных шагов затирания и индексации - считать неизменным? Есть ли способ вытащить все, кроме одного файла? Любые другие решения для описанной проблемы?

Спасибо

1
nl ja de

1 ответы

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

Но если вы добавите файл в .git/info/exclude , он будет локально проигнорирован.

Это предложение из .gitignore :

Шаблоны, которые специфичны для конкретного репозитория, но которые не должны быть разделены        с другими связанными репозиториями (например, вспомогательные файлы, которые находятся внутри репозитория   но являются специфическими для рабочего процесса одного пользователя) должны войти в файл $ GIT_DIR/info/exclude

4
добавлено
Спасибо, огзд. Я мог бы также делать глобальное игнорирование: git config --global core.excludesfile pathTo/.gitignore_global. Однако игнорирование не применяется, если файл отслеживается git, и это должно быть так. Подробнее в margotskapacs.com/2013/02/…
добавлено автор latvian, источник
Нет проблем с нажатием кода (файл конфигурации проиндексирован - без изменений), но проблема в том, чтобы вытащить или объединить (кажется, что -ауммер без изменений не применяется для слияния/вытягивания). Надеюсь, это имеет смысл.
добавлено автор latvian, источник
Git — русскоговорящее сообщество
Git — русскоговорящее сообщество
588 участник(ов)

Обсуждаем git, его фичи, хаки, надстройки и экосистему. Правила: http://telegra.ph/ru-chat-rules-06-19 https://git.wtf/

pro.git::next
pro.git::next
44 участник(ов)

Обсуждение системы контроля версий git и инструментов для работы с ней.