Справочная информация
В моей команде есть подгруппы, работающие над модулями нашего приложения, а разработчик занимается функциями этих модулей. Наша стратегия ветвления 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 Интерфейсы