Я создал репозиторий на github и работал над репозиторием на github.
Я сделал запросы на включение, и они были выполнены.
После этого в восходящем потоке было еще несколько коммитов, поэтому теперь я хочу выполнить перебазирование, я думаю, это то, что мне нужно сделать.
Но я получаю эти конфликты слияния:
First, rewinding head to replay your work on top of it...
Applying: Issue 135 homepage refresh
Using index info to reconstruct a base tree...
<stdin>:17: trailing whitespace.
%h4
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging app/views/layouts/application.html.haml
CONFLICT (content): Merge conflict in app/views/layouts/application.html.haml
Auto-merging app/views/home/index.html.haml
CONFLICT (content): Merge conflict in app/views/home/index.html.haml
Auto-merging app/views/home/_group_projects.html.haml
CONFLICT (content): Merge conflict in app/views/home/_group_projects.html.haml
Failed to merge in the changes.
Patch failed at 0001 Issue 135 homepage refresh
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Я не знаю, как это исправить, пожалуйста, помогите.
git
github
git-rebase
пахнин
источник
источник
Ответы:
Ребазинг может стать настоящей головной болью. Вы должны разрешить конфликты слияния и продолжить перебазирование. Например, вы можете использовать инструмент слияния (который отличается в зависимости от ваших настроек)
Затем добавьте свои изменения и продолжайте
Удачи
источник
Если во время перебазирования возник конфликт, у вас есть три варианта:
Вы можете запустить,
git rebase --abort
чтобы полностью отменить перебазирование. Git вернет вас в состояние вашей ветки, которое было до вызова git rebase.Вы можете запустить,
git rebase --skip
чтобы полностью пропустить фиксацию. Это означает, что никакие изменения, внесенные проблемной фиксацией, не будут включены. Вы очень редко выбираете этот вариант.Вы можете исправить конфликт, как сказал iltempo. Когда вы закончите, вам нужно будет позвонить
git rebase --continue
. Мой mergetool - kdiff3, но есть еще много других, которые вы можете использовать для разрешения конфликтов. Вам нужно только установить инструмент слияния в настройках git, чтобы его можно было вызывать при вызовеgit mergetool
https://git-scm.com/docs/git-mergetoolЕсли ничего из вышеперечисленного у вас не работает, то прогуляйтесь и попробуйте еще раз :)
источник
<<<<<
Если у вас много коммитов, которые нужно перебазировать, и какая-то их часть дает конфликты, это действительно больно. Но я могу предложить менее известный подход, как «раздавить все конфликты».
Сначала проверьте временную ветку и начните стандартное слияние
Вам придется разрешать конфликты, но только один раз и только реальные. Затем подготовьте все файлы и завершите слияние.
Затем вернитесь в свою ветку (пусть она будет альфа ) и начните перебазирование, но с автоматическим разрешением любых конфликтов.
Ветка была перебазирована, но, вероятно, проект находится в недопустимом состоянии. Это нормально, у нас есть последний шаг. Нам просто нужно восстановить состояние проекта, так что оно будет точно как на ветке temp. Технически нам просто нужно скопировать его дерево (состояние папки) с помощью низкоуровневой команды git commit-tree . Плюс слияние с текущей веткой только что созданного коммита.
И удалите временную ветку
Вот и все. Мы сделали ребаз через скрытое слияние.
Также я написал сценарий, так что это можно сделать в диалоговом режиме, вы можете найти его здесь .
источник
Примечание: с Git 2.14.x / 2.15 (3 квартал 2017)
git rebase
сообщение в случае конфликтов будет более четким.См. Commit 5fdacc1 (16 июля 2017 г.) Уильяма Дюкло (
williamdclt
) .(Объединено Junio C Hamano -
gitster
- в коммите 076eeec , 11 августа 2017 г.)Перед:
После:
источник