Этот вопрос, по сути, противоположен этому .
Существуют определенные файлы, которые существуют по причинам на пульте команды. Они не часто меняются, но это не имеет значения: наличие их в моем локальном репозитории вызывает проблемы.
Я могу очень легко удалить эти файлы, но это означает, что мне нужно быть очень осторожным с тем, как и что я фиксирую , Переключение ветвей при изменении этих файлов может быть проблематичным, если между этими ветвями произошли изменения.
Как я могу удалить эти файлы локально, сохранить их на удаленном компьютере, создав иллюзию чистого рабочего дерева? Я хотел бы иметь возможность переключать ветки и выполнять работу (stage / unstage / discard) без присутствия этих файлов. Если они меняются в одной ветви, и я переключаюсь на эту ветку, файлы должны оставаться удаленными.
Мой лучший обходной путь на данный момент:
- Удалить все указанные файлы после ветвления (для всех моих веток разработчика).
- Commit.
- Работайте как обычно.
- Перебазируйте + отбросьте первый коммит перед открытием запроса на получение.
Шаги 1 и 2 можно выполнить с помощью крюка git, но я не потрудился настроить его.
Спасибо!
Также примечание по проблеме XY («почему вы хотите это сделать»): «правильное» решение - открыть заявку в службу поддержки вместе с командой, которая создала мою IDE, что я уже делаю. В то же время, обходной путь может также помочь ответить на этот вопрос, если он применяется в другом месте.
Я нашел две причины, чтобы спросить это:
- Мой коллега хочет, чтобы локальные
.pyi
файлы присутствовали на магистральная ветка для проекта Python 3.6. PyCharm использует эти .pyi
файлы как источник правды, например: если вы добавляете функцию к файлу, вы должны добавить заглушку в связанный файл .pyi
, иначе PyCharm не сможет найти или предложить новую функцию . - Действия GitHub требуют фиксации всего каталога
node_modules
, а также файла точки входа .js
при публикации ссылки в качестве версии Action. Это проблематично c с несколькими ветвями ActionScript GitHub, когда разработчик обычно запускает tsc
перед фиксацией, поскольку скомпилированный .js
в рабочем дереве всегда конфликтует при переключении ветвей. Спрятать - это правильный способ справиться с этим, но иногда это может быть неудобно.