Могу ли я игнорировать файл в основной ветви, но не в дочерних и дочерних ветках? - PullRequest
1 голос
/ 02 апреля 2020

Справочная информация

В моей команде есть подгруппы, работающие над модулями нашего приложения, а разработчик занимается функциями этих модулей. Наша стратегия ветвления git такова: чистый мастер -> ветки dev для каждого выполняемого модуля -> ветви функций:

master
|
+-+ module1-dev
| |
| +-- feature1A
| |
| +-- feature1B
|
+-+ module2-dev
  |
  +-- feature2A
  |
  +-- feature2B

Когда работа над объектом завершена, она объединяется в ветвь модуля-разработчика. Когда ветвь module-dev завершена, она объединяется с веткой master. Время, проведенное в ветке module-dev, может составлять от 6 месяцев до нескольких лет. Периодически мы будем объединять основную ветвь с ветвями разработчика.

Задача

У нас есть файл yaml, который должен существовать только внутри ветки dev и ее подчиненной -ветви. Файл yaml будет различным в разных ветвях модуля.

Например:

  • в master, foo.yaml содержит ""
  • в module1-dev, foo.yaml содержит "AB"
  • в module2-dev, foo.yaml содержит "YZ"

Я хочу видеть то же самое foo.yaml в module1-dev/feature1A и в module1-dev/feature1B, содержимое которого будет отличаться от module2-dev/feature2A и module2-dev/feature2B. Я должен иметь возможность изменять его содержимое в module2-dev/feature2B и сливаться в module2-dev, но я не вижу измененного foo.yaml, объединенного с master, когда этот модуль в конечном итоге будет завершен.

Как я могу обеспечить это в git? Существует ли .gitignore, .gitattribute или аналогичный файл, который можно редактировать и фиксировать как часть хранилища? Я хочу, чтобы это было легко для каждого члена команды, независимо от его git уровня квалификации.

Дополнительные требования:

  • Это не должно требовать персонифицированных манипуляций каждым разработчиком
  • Это не требует редактирования при использовании репозитория на новом компьютере (либо заменен, либо потому, что пользователь новый)
  • Это должно работать с кнопкой слияния в пользовательском интерфейсе BitBucket или другом git Интерфейсы
...