Подтвердить что ты не робот

Объединение нескольких ветвей с помощью git

У меня есть 2 локальных хранилища, которые называются "develop" и "master"; они подобны. На моем сервере компании есть 1 "основное" репо (производство) и несколько веток, которые были сделаны другими разработчиками:

$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/some-test
  remotes/origin/feature1
  remotes/origin/feature2
  remotes/origin/master

Как я могу объединить remotes/origin/feature1 и remotes/origin/feature2 в свое местное "главное" репо, скопировать все, чтобы "развиваться" и начать работать с реальным кодом в моем "развивающемся" репо?

4b9b3361

Ответ 1

  • git checkout master
  • git pull origin feature1 feature2
  • git checkout develop
  • git pull . master (или, может быть, git rebase ./master)

Первая команда изменяет вашу текущую ветвь на master.

Вторая команда вносит изменения в удаленные ветки feature1 и feature2. Это слияние "осьминога", потому что оно объединяет более двух ветвей. Вы также можете сделать два обычных слияния, если хотите.

Третья команда возвращает вас к ветки develop.

Четвертая команда переносит изменения с локального master на develop.

Надеюсь, что это поможет.

EDIT: Обратите внимание, что git pull автоматически выполнит fetch, поэтому вам не нужно делать это вручную. Это в значительной степени эквивалентно git fetch, за которым следует git merge.

Ответ 2

Я бы просто "взял" все происхождение:

git fetch origin

Теперь, когда вы находитесь в своем репо, вы можете объединить ветки в мастер:

git checkout master

git merge origin/feature1 

git merge origin/feature2 

теперь вы можете объединить мастера в разработку

git checkout develop
git merge master 

если вы собираетесь перевести на исходный код, тогда я бы установил локальную ветку отслеживания, чтобы вы могли получить локальный доступ и напрямую нажать на источник:

git branch --track origin/feature1 feature1