Как получить разные .gitignore для каждой ветви (или альтернативное решение)? - PullRequest
0 голосов
/ 31 мая 2019

У меня есть следующие настройки:

origin / master origin / my-branch
----------------- ----------------------
test.txt
||
||
||

local / master local / my-branch
----------------- ----------------------
test.txt test.txt

Идея состоит в том, что мне нужно иметь разные файлы test.txt в каждой ветви, рассматривая их как файлы конфигурации.Однако test.txt должен находиться на origin / master, если кто-то еще хочет клонировать проект, чтобы иметь рабочую конфигурацию по умолчанию.
Я хочу иметь свой файл test.txt (измененный с моими собственными конфигурациями), и я также не хочу отправлять его на удаленный компьютер в моей ветке, потому что позже я сливаю его в мастер, и мои конфигурации будут переопределеныстандартный файл test.txt.

Как этого добиться?Я думал об использовании 2 разных .gitignore для каждой ветви, но изменение .gitignore в одной ветви изменяет его в другой.Кроме того, поскольку test.txt в локальной / my-branch не привязан к удаленному, каждый раз, когда я возвращаюсь к мастеру и возвращаюсь назад, файл удаляется.

1 Ответ

1 голос
/ 31 мая 2019

Чтобы решить эту проблему, вам нужен один файл конфигурации, который зарегистрирован, и второй файл конфигурации, который игнорируется. Первый содержит конфигурацию по умолчанию. Второй содержит ваши локальные модификации, которые переопределяют значения по умолчанию. Как вы этого добьетесь, зависит от вашего проекта.

Вот простой пример в Ruby, использующий файлы конфигурации YAML.

config = YAML.load_file('config.yml')
local_config = YAML.load_file('local_config.yml')
config.merge!( local_config )

Это полезно не только для разработки, но и для ваших пользователей. Они могут сохранять файл конфигурации по умолчанию без изменений, что позволяет ему корректно обновляться при появлении новых версий. Их локальные изменения идут в локальный конфигурационный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...