Ответ 1
Проверьте ветвь aq
и переустановите ее из master
.
git checkout aq
git rebase master
В моем репозитории у меня есть ветвь с именем aq
, над которой я работаю.
Затем я совершил новую работу и ошибки в master
.
Каков наилучший способ получить эти коммиты в ветку aq
? Создайте еще одну новую ветвь из master
и объедините ее с помощью aq
?
Проверьте ветвь aq
и переустановите ее из master
.
git checkout aq
git rebase master
Вы должны иметь возможность просто git merge origin/master
, когда находитесь на своей ветке aq.
git checkout aq
git merge origin/master
Сначала проверьте мастер:
git checkout master
Выполняйте все изменения, исправления и совершите и нажмите своего мастера.
Вернитесь к своей ветке, 'aq' и объедините мастер в ней:
git checkout aq
git merge master
Ваша ветка будет обновлена с помощью мастера. Хорошим и основным примером слияния является 3.2 Git Ветвление - основное ветвление и слияние.
Нет гарантии, что основные исправления ошибок не входят в число других коммитов, поэтому вы не можете просто объединить. Есть
git checkout aq
git cherry-pick commit1
git cherry-pick commit2
git cherry-pick commit3
...
при условии, что эти коммиты представляют исправления ошибок.
Отныне храните исправления ошибок в отдельной ветке. вы сможете просто
git merge hotfixes
когда вы хотите свернуть их все в обычную ветку разработки.
Либо cherry-pick
соответствующая транзакция берется в ветвь aq
или объединяет ветвь master
в ветвь aq
.
Объедините его с aq
git checkout master
git pull
git checkout aq
git merge --no-ff master
git push
Простой способ
# 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
на ветку, которая будет хранить имена фиксации, но НЕ РЕБЕСС, если это удаленная ветвь. Вы можете git merge master aq
, если вам не нужны имена фиксации. Если вы хотите сохранить имена фиксации, и это удаленная ветвь git cherry-pick <commit hash>
, она берется за вашу ветку.
Это (отсюда) работает для меня:
git checkout aq
git pull origin master
git push
Цитирование:
git pull origin master
извлекает и объединяет содержимое мастера ветвь с вашей веткой и создает коммит слияния. Если есть какие-либо конфликты слияния вы будете уведомлены на этом этапе, и вы должны решить слияние совершается перед продолжением. Когда вы будете готовы выдвинуть локальные коммиты, включая ваш новый коммит слияния, на удаленный сервер, запуститьgit push
.