Получить изменения из master в branch в Git
в моем репозитории у меня есть ветка под названием aq
над которым я работаю.
затем я совершил новую работу и ошибки в master
.
каков наилучший способ получить эти коммиты в aq
ветку? Создайте еще одну новую ветку из master
и объединить его с aq
?
9 ответов
вы должны быть в состоянии просто git merge origin/master
когда вы находитесь на ветке aq.
git checkout aq
git merge origin/master
сначала проверьте мастер:
git checkout master
сделайте все изменения, исправления и фиксации и нажмите мастер.
вернитесь в свою ветку " aq " и объедините в ней мастера:
git checkout aq
git merge master
ваша ветка будет обновлена с master. Хорошим и основным примером слияния является 3.2 Git ветвление-основное ветвление и слияние.
нет никакой гарантии, что мастер исправления ошибок не совершает среди других, поэтому вы не можете просто слить. Do
git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...
предполагая, что эти коммиты представляют собой исправления ошибок.
отныне, однако, держите исправления ошибок в отдельной ветке. Вы сможете просто
git merge hotfixes
когда вы хотите свернуть их все в обычную ветку dev.
независимо от того, что rebase или merge правы, но что, если у вас есть несколько коммитов в вашей ветви aq, rebase или merge будет содержать другие изменения людей при отправке запроса на вытягивание, или что, если раздавить коммиты в одну фиксацию, поэтому я думаю,что у меня есть способ (не лучший способ, но очень безопасный и ясный)
# 1. Create a new remote branch A base on last master
# 2. Checkout A
# 3. Merge aq to A
для меня у меня уже были изменения, и я хотел получить последнюю информацию из базовой ветви. Я не мог этого сделать rebase
и cherry-pick
заняло бы целую вечность, поэтому я сделал следующее:
git fetch origin <base branch name>
git merge FETCH_HEAD
таким образом:
git fetch origin master
git merge FETCH_HEAD
у вас есть пара вариантов. git rebase master aq
на ветку, которая сохранит имена фиксации, но не перебазирует, если это удаленная ветвь. Ты можешь!--1--> Если вы не заботитесь о сохранении имен фиксации. Если вы хотите сохранить имена фиксации, и это удаленная ветвь git cherry-pick <commit hash>
коммиты на ветке.