it-roy-ru.com

Получить изменения от мастера в филиал в Git

В моем репозитории есть ветка с именем aq, над которой я работаю.

Затем я совершил новую работу и обнаружил ошибки в master.

Каков наилучший способ получить эти коммиты в ветке aq? Создать еще одну новую ветку из master и объединить ее с aq?

570
Slee

Проверьте ветку aq и сделайте ребаз от master.

git checkout aq
git rebase master
662
Douglas F Shearer

Вы должны иметь возможность просто git merge Origin/master, когда вы находитесь в вашей ветке aq.

git checkout aq
git merge Origin/master
250
Chris Kooken

Сначала проверьте, чтобы освоить:

git checkout master

Сделайте все изменения, исправления и фиксации и нажмите ваш мастер.

Вернитесь к своей ветке 'aq' и объедините в ней master:

git checkout aq
git merge master

Ваша ветка будет в курсе с мастером. Хорошим и базовым примером слияния является .2 Git Branching - Basic Branching and Merging.

81
Hrishikesh Mishra

Нет гарантии, что основные исправления ошибок не входят в число других коммитов, поэтому вы не можете просто объединить. Делать

git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...

предполагая, что эти коммиты представляют исправления ошибок.

Отныне храните исправления ошибок в отдельной ветке. Вы сможете просто

git merge hotfixes

когда вы хотите свернуть их все в обычную ветку разработки.

23
Adam Dymitruk

Либо cherry-pick соответствующий коммит в ветку aq, либо слияние ветки master с веткой aq.

16
Alan Haggai Alavi

Простой способ

# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A
7
Alen Lee

Объединить его с aq

git checkout master
git pull
git checkout aq
git merge --no-ff master
git Push
7
alditis

Для меня у меня уже были изменения, и я хотел, чтобы последние из базовой ветви. Я не смог сделать rebase, и cherry-pick занял бы вечность, поэтому я сделал следующее:

git fetch Origin <base branch name>  
git merge FETCH_HEAD

так что в этом случае:

git fetch Origin master  
git merge FETCH_HEAD
6
Pete B.

У вас есть пара вариантов. git rebase master aq в ветку, которая будет хранить имена коммитов, но НЕ ПЕРЕЗАГРУЗИТЬ, если это удаленная ветка. Вы можете git merge master aq, если вам не нужно хранить имена коммитов. Если вы хотите сохранить имена коммитов и это удаленная ветвь git cherry-pick <commit hash>, коммиты в вашу ветку.

2
Dan McNamara