Это остроумный вопрос относительно нашего проекта C # Xamarin.
У нас есть пара файлов в папке Assets, которые копируются туда с помощью команды события перед сборкой. Файлы не используются компилятором напрямую, но если они отсутствуют, наш CI-сервер не удастся собрать. Версии их на всех машинах разработчиков, вероятно, разные, поэтому всякий раз, когда мы собираемся на наших машинах, файлы копируются, и git показывает, что они изменены
Это раздражает, потому что изменения в этих файлах действительно не имеют значения, поэтому нам никогда не нужно их фиксировать. Я хочу игнорировать изменения этих файлов, но не удалять их из репозитория. Если они удалены, как упомянуто выше, CI потерпит неудачу. Если я произнесу «удалить и остановить отслеживание», они будут удалены с сервера CI при его извлечении.
Из других вопросов о переполнении стека, я пробовал оба из них:
git update-index --assume-unchanged [path]
git update-index --skip-worktree [path]
Оба успешно скрывают изменения файла, но оба представляют следующую проблему. Когда я пытаюсь переключить ветки, он говорит мне, что я должен отказаться от внесенных изменений перед переключением, и перечисляет эти файлы. Я тогда наберу:
git reset -- .
git checkout .
Оба не смогут отменить изменения в файлах, пока я не отменю команды update-index, только тогда я могу отменить изменения и получить возможность переключать ветви.
Есть ли решение для этого? Мы делаем что-то нестандартное или просто неправильно?