#git
#git
Вопрос:
У меня есть репозиторий git с двумя расходящимися ветвями, production и v2. Я работаю над третьей веткой с сотрудником, с которым мы объединяемся, под названием prod-merge. Идея в том, что версия v2 содержит множество обновлений функций, а производство представляло собой серию исправлений / исправлений ошибок.
Итак, теперь v2 должен быть более или менее каноническим, но мне нужно объединить изменения из моей производственной ветки.
Мы с моим сотрудником разделили рабочий процесс таким образом, что я отвечаю за объединение пространства имен foo, а он отвечает за слияние в пространстве имен bar. Другими словами, я отвечаю за слияние в производственной ветке, файле foo.rb. Для каждого из нас есть несколько файлов.
Я играл с diff, merge, patch и am, не найдя действительно надежного рабочего процесса. Я бы хотел трехстороннее слияние, чтобы убедиться, что я ничего не пропустил, а затем зафиксировал это слияние. Какое самое простое решение, которое могло бы сработать?
спасибо, Брайс
Комментарии:
1. Почему бы просто не объединить ветку с
git merge <branch>
? Похоже, что каждая ветвь в любом случае редактирует только свое собственное пространство имен2. Мне не обязательно нужна вся ветка, в большинстве случаев мне нужен только один или два файла.
3. Для этого есть решения (
checkout --theirs
vs--ours
vs--conflict
), но лучше, если ветка изменяет только файлы, которые она должна изменить. Что происходит с другими изменениями? Это похоже на то, что мог бы исправить лучший рабочий процесс.
Ответ №1:
должен быть лучший способ, но я обнаружил, что это просто трюк:
git format-patch --stdout feature..master -- app/controllers/feeds_controller.rb > ~/Desktop/feeds.patch
git am -3 -i --ignore-date ~/Desktop/feeds.patch
Ответ №2:
У нас много очень сложных ветвей, сценариев владения ветвями и т. Д. Я задокументировал подход здесь. Надеюсь, это даст вам несколько хороших идей.
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR