2

Рассмотрим следующую настройку: один репозиторий1 находится на Bitbucket. Локальная рабочая копия находится на моей машине. Я изменяю файлы локально, фиксирую и отправляю в Repository1.

Изменения в Repository1 (на Bitbucket) (в ветке "master"), где сделаны только мной. Теперь мне нужно получить некоторые из них в ветке "feature" другого Repository2, который также находится в Bitbucket.

Содержимое Repository2, однако, является более новым, изменения, внесенные удаленной командой, не отражаются ни в Repository1, ни в моей рабочей копии. Repository2 содержит также больше файлов, где мой Repository1 содержит только небольшую его часть.

В конце я хочу объединить некоторые изменения в Repository1 (ветвь "master") с более новыми файлами в Repository2 (ветвь "feature").

Однако единственное решение, которое я знаю, это не практично: сортируйте мои измененные файлы и вручную объединяйте их и объединяйте, а затем копируйте их в мою локальную рабочую копию Repository2, делая коммит и push впоследствии.

Есть ли другой метод? Желательно что-то, что включает в себя авто-слияние, где это возможно.

Заранее спасибо!

1 ответ1

0

Ваш вопрос состоит из двух частей: как управлять несколькими репозиториями и как выполнить слияние.

Есть ли причина, по которой у вас есть два отдельных репозитория в BitBucket, а не один репозиторий с несколькими ветвями? Предполагая, что есть веская причина, вы все равно можете использовать свой локальный репозиторий для синхронизации с двумя различными пультами, что-то вроде

$ git fetch repo1 branch:master
$ git fetch repo2 branch:feature

Это создаст мастер и функцию локальных ветвей, даже если ветви в удаленных репозиториях имеют одинаковые имена. Сделав все, что вам нужно сделать с этими ветвями, вы можете использовать аналогичный синтаксис:

$ git push repo1 master:branch
$ git push repo2 feature:branch

Получив локальные копии веток, вы сможете объединить свои изменения с

$ git checkout feature
$ git merge master

Если есть конфликты, лучше всего разрешить их вручную, но если вы уверены, что мастер прав, вы можете добавить опцию -s theirs в команду merge .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .