У меня есть клонированный проект из главной ветки из удаленного хранилища remote_repo
. Я создаю новую ветку, и я фиксирую эту ветку. Другие программисты подтолкнули к remote_repo
основной ветке.
Теперь мне нужно переназначить мою ветку RB на remote_repo
master.
Как это сделать? Какие команды набрать на терминале?
git
clone
git-rebase
Дамир
источник
источник
Ответы:
Сначала выберите новый мастер из репозитория upstream, а затем перебазируйте вашу рабочую ветку на это:
Обновление : пожалуйста, смотрите ответ Пола Дрейпера для более краткого способа сделать то же самое - последние версии Git предоставляют более простой способ сделать эквивалент вышеупомянутых двух команд.
источник
Your branch and 'origin/b1' have diverged, # and have 3 and 2 different commits each, respectively.
Похожеgit pull
, нужен другой . Это правильно или я что-то здесь упускаю?git rebase master
не будет делать ту же работу , как второй команды (git rebase origin/master
) , такmaster
иorigin/master
вполне может указывать на различные фиксаций (особенно с учетом того, что первая команда былаgit fetch origin
, которая может изменитьorigin/master
).источник
git pull --rebase=interactive origin master
dev
и запускаюgit pull --rebase origin master
, тоdev
будет изменена только ветка , а неmaster
. Документация--rebase
флага гласит, что он пытаетсяrebase the current branch on top of the upstream branch after fetching
и ничего не делает для изменения локальных ветвей отслеживания.После внесения изменений в вашу ветку
master
извлеките его и извлеките, чтобы получить последние изменения из репозитория:Затем оформите свою ветку и внесите изменения
master
:... или две последние команды в одной строке:
При попытке вернуться назад
origin/RB
, вы, вероятно, получите ошибку; если вы работаете только одинRB
, вы можете принудительно нажать:... или, если вы правильно настроили git:
источник
git push
без-f
).Примечание. Если у вас уже есть широкие знания о перебазировании, используйте быструю перебазировку ниже одной строки. Решение: Предположим, что вы работаете в своей ветке и являетесь единственным человеком, работающим над ней.
Разрешите любые конфликты, протестируйте свой код, передайте и отправьте новые изменения в удаленную ветку.
Следующие шаги могут помочь любому, кто новичок
git rebase
и хотел сделать это без хлопотШаг 1: Предполагая, что в данный момент в YourBranch нет изменений и изменений, которые необходимо внести. Мы посещаем YourBranch.
Что случилось? Извлекает все изменения, сделанные другими разработчиками, работающими над вашей веткой, и отменяет ваши изменения поверх нее.
Шаг 2: Разрешите любые конфликты, которые представляют.
Шаг 3:
Что случилось? Извлекает все последние изменения с удаленного мастера и восстанавливает локальный мастер на удаленном мастере. Я всегда держу удаленный мастер в чистоте и готовлюсь к выпуску! И предпочитаю работать только на мастере или филиалах локально. Я рекомендую делать это до тех пор, пока вы не получите руку на изменения или коммиты git. Примечание. Этот шаг не требуется, если вы не обслуживаете локальный мастер, вместо этого вы можете напрямую выбрать и перебазировать удаленный мастер в локальной ветке. Как я уже упоминал в одном шаге в начале.
Шаг 4: Разрешите любые конфликты, которые представляют.
Шаг 5:
Что случилось? Ребаз на мастера случается
Шаг 6: Решите любые конфликты, если они есть. Используйте
git rebase --continue
для продолжения перезагрузки после добавления разрешенных конфликтов. В любое время вы можете использовать,git rebase --abort
чтобы прервать ребаз.Шаг 7:
Что случилось? Вносить изменения в ваш удаленный YourBranch.
--force-with-lease
будет проверять, есть ли какие-либо другие входящие изменения для YourBranch от других разработчиков, пока вы перебазируете. Это супер полезно, а не силовой толчок. В случае каких-либо входящих изменений, загрузите их, чтобы обновить локальный YourBranch, прежде чем отправлять изменения.Почему я должен толкать изменения? Переписать сообщение коммита в удаленном YourBranch после правильной перебазировки или если разрешены какие-либо конфликты? Затем вам нужно отправить внесенные вами изменения в локальное хранилище в удаленное хранилище YourBranch.
Yahoooo ...! Вы успешно сделали перебазирование.
Вы также можете заняться:
Когда и почему? Объедините вашу ветку с master, если внесены изменения, внесенные вами и другими соавторами. Что делает YourBranch современным с master, когда вы захотите поработать над той же веткой позже.
источник
Pulls latest changes from remote master to local master. I always prefer keeping remote master clean and release ready always!
. Я обновлю свое описание.Шаг 1:
Шаг 2:
Шаг 3: (исправить, если возникнут конфликты)
Шаг 4:
Шаг 5:
источник
1. Обновите Мастер первым ...
2. Теперь перебазируем исходную ветку с главной веткой
Если исходная ветвь еще не существует на удаленном компьютере, выполните:
"и вуаля..."
источник
git fetch origin master:master
тянет последнюю версию мастера, не проверяя ее.Так что все, что вам нужно, это:
git fetch origin master:master && git rebase master
👌источник
git fetch
обновляет мастер, не проверяя его тоже? За исключением тогоgit fetch
,git merge
что обновления не так ли? Так что, если мы оформим заказ, уmaster
него не будет последних обновлений. Так не короче делать в то время как на этой ветке,git fetch
тоgit rebase origin/master
? Мы не можем этого сделать,git rebase master
потому что мы попытаемся сделать ребазингmaster
в рабочей области, нам нужноorigin/master
получить информацию из нерешенной, но сидя в локальной сети.