Как сделать файл `--assume-неизмененным` в проекте? - PullRequest
0 голосов
/ 01 июня 2018

У меня есть файл конфигурации: 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.

Я хочу, чтобы это работало следующим образом:

  1. conf / local.conf сохранен
  2. ветвь переключена
  3. conf / local.conf заменена сохраненной версией

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Не используйте --assume-unchanged, который следует использовать для проблем с производительностью для больших файлов, не изменяющихся и дорогостоящих для хеширования при выполнении git status.

То, что вы хотите, это --skip-worktree, которые делаютпочти то же самое, но для обработки файлов, которые вы изменили, но не хотите фиксировать.

См. https://stackoverflow.com/a/13631525/717372

И это, вероятно, (не уверен, но эй !, это то, что выдолжен сделать ...) исправить вашу проблему ...

0 голосов
/ 01 июня 2018

Удалите предполагаемый неизмененный бит:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...