@apecherin

Git: merge branch. Как игнорировать определенные файлы при слиянии?

Имеется две ветки-
master и beta.
Как организовать их слияние, при условии что необходимо игнорировать определенный список файлов.
К примеру, имеется RoR приложение, при слиянии веток необходимо не обращать внимание на файлы из директории ./config, то есть эти файлы должны оставаться уникальными для каждой из веток.
  • Вопрос задан
  • 5663 просмотра
Решения вопроса 2
@Codebaker
Всё умею, всё могу!
Из git-book:

Предположим, вы хотите оставить config.xml нетронутым:

В бранче master:

Создайте файл .gitattributes в том же каталоге, указав в нем: config.xml merge=ours. Это подскажет git-у, какую merge-strategy он должен использовать, работая с этим файлом. В данном случае, он всегда будет оставлять вашу версию файла нетронутой, например, оставит его нетронутым в бранче devel, если вы будете в него мержить.

Добавьте (-a) .gitattributes и примените к нему commit

Для бранча devel повторите аналогичные действия. Попробуйте провести merge - указанные в .gitattributes файлы должны остаться нетронутыми.

Помогло?
Ответ написан
@apecherin Автор вопроса
спасибо, учел все ваши комментарии(а так же мой аналогичный вопрос на stackoverflow ) и решил сделать иначе.
будет два сервера на Heroku, в конфигурации создам два production окружения, в рабочих файлах проекта, где это необходимо, буду использовать проверку на текущую конфигурацию.
git-ветка будет одна, и два remote на каждый сервер.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Ветки пока не нужны, достаточно master.
Если ваша активная разработка связана с внесением новых функций, необходимых заказчику, делайте все в ветке master. Я предлагаю вам сделать тег на той версии, которая работает у заказчика на боевом сервере. После этого продолжайте разработку в master и таким образом получите development версию продукта. Которую вы будете ставить на development сервер.

Если у вас возникнет необходимость что-то поправить в боевой версии, делайте ветку с тега и вносите изменения в ней. При необходимости сливайте изменения на master.

И помните Git - это не deployment tool. То как вы описываете свою проблему, наводит на мысль, что вы просто делаете pull одной из веток на серверах. Хорошо если я ошибаюсь, так как делать этого не нужно, плохо с точки зрения безопасности.
Ответ написан
.gitignore - там список что игнорировать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы