Как сделать файл `--assume-неизмененным` в проекте?
У меня есть файл конфигурации: conf/local.conf
Я запускаю следующую команду для этого:
git update-index --assume-unchanged local.conf
и это нормально, пока я не переключусь на другую ветку или не потяну.
Как сохранить --assume-unchanged
флаг между ветками?
UPD
Некоторые примеры того, что происходит:
$ git checkout 296-ToS-component
error: Your local changes to the following files would be overwritten by checkout:
conf/local.conf
Please commit your changes or stash them before you switch branches.
Aborting
$ git checkout -f 296-ToS-component
error: Entry 'conf/local.conf' not uptodate. Cannot merge.
Я хочу, чтобы это работало следующим образом:
- conf/local.conf сохранен
- Филиал переключен
- conf/local.conf заменяется сохраненной версией
2 ответа
Не использовать --assume-unchanged
это должно использоваться для проблемы производительности для больших файлов, не изменяющихся, и это дорого обходится при хешировании git status
,
Что вы хотите --skip-worktree
которые делают почти то же самое, но обрабатывают файлы, которые вы изменили, но не хотите фиксировать.
И это, вероятно, (не уверен, но эй!, это то, что вы должны сделать...) решит вашу проблему...
Удалите предполагаемый неизмененный бит:
git update-index --no-assume-unchanged local.conf
Сохрани это:
git stash
Переключить ветку:
git checkout 296-ToS-component
Получить сохраненную версию:
git show stash@{0}:local.conf > local.conf
или объединить сохраненную версию с текущей версией:
git stash apply
и могут быть конфликты, которые можно решить вручную.
Установите бит предположения без изменений:
git update-index --assume-unchanged local.conf