Как переустановить локальную ветку с удаленным мастером

Я клонировал проект из главной ветки из удаленного репозитория remote_repo. Я создаю новую ветку, и я фиксирую эту ветвь. Другие программисты нажали на remote_repo, чтобы овладеть веткой. Теперь мне нужно перегрузить мою ветку RB на мастер remote_repo. Как это сделать? Какие команды нужно вводить в терминал?

+818
источник поделиться
7 ответов

Сначала выберите новый мастер из восходящего репозитория, а затем переустановите свою рабочую ветку на это:

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

Обновить: см. Paul Draper answer для более кратких способов сделать то же самое - последние версии Git обеспечивают более простой способ для выполнения эквивалента указанных выше двух команд.

+1128
источник
git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]
+751
источник
другие ответы

Связанные вопросы


Похожие вопросы

После внесения изменений в вашу ветку, извлеките master и извлеките его, чтобы получить последние изменения из репо:

git checkout master
git pull origin master

Затем оформите свою ветку и внесите изменения в master:

git checkout RB
git rebase master

... или две последние команды в одной строке:

git rebase master RB

При попытке вернуться к origin/RB вы, вероятно, получите ошибку; если вы единственный, кто работает над RB, вы можете принудительно нажать:

git push --force origin RB

... или если вы правильно настроили git:

git push -f
+174
источник

Примечание. Если у вас уже есть широкие знания о перебазировании, используйте быструю перебазировку под одним вкладышем. Решение: Предположим, что вы работаете в своей ветке и являетесь единственным человеком, работающим над ней.

git fetch && git rebase origin/master

Разрешите любые конфликты, протестируйте свой код, передайте и отправьте новые изменения в удаленную ветку.

                            ~:   For noobs   :~

Следующие шаги могут помочь любому, кто новичок в git rebase и хочет сделать это без хлопот

Шаг 1: Предполагая, что в данный момент в YourBranch нет изменений и изменений, которые необходимо внести. Мы посещаем YourBranch.

git checkout YourBranch
git pull --rebase

Что случилось? Извлекает все изменения, сделанные другими разработчиками, работающими над вашей веткой, и отменяет ваши изменения поверх нее.

Шаг 2: Разрешите любые конфликты, которые представляют.

Шаг 3:

git checkout master
git pull --rebase

Что случилось? Извлекает все последние изменения с удаленного мастера и восстанавливает локальный мастер на удаленном мастере. Я всегда держу удаленный мастер в чистоте и готовлюсь к выпуску! И предпочитаю работать только на мастере или ветких локально. Я рекомендую делать это до тех пор, пока вы не получите руку на изменения или коммиты git. Примечание. Этот шаг не требуется, если вы не обслуживаете локальный мастер, вместо этого вы можете напрямую выбрать и перебазировать удаленный мастер в локальной ветке. Как я уже упоминал в одном шаге в начале.

Шаг 4: Разрешите любые конфликты, которые представляют.

Шаг 5:

git checkout YourBranch
git rebase master

Что случилось? Ребаз на мастера случается

Шаг 6: Решите любые конфликты, если они есть. Используйте git rebase --continue чтобы продолжить перебазирование после добавления разрешенных конфликтов. В любое время вы можете использовать git rebase --abort для git rebase --abort.

Шаг 7:

git push --force-with-lease 

Что случилось? Вносить изменения в ваш удаленный YourBranch. --force-with-lease будет проверять, есть ли какие-либо другие входящие изменения для YourBranch от других разработчиков во время перебазирования. Это супер полезно, а не силовой толчок. В случае каких-либо входящих изменений, загрузите их, чтобы обновить локальный YourBranch, прежде чем отправлять изменения.

Почему я должен толкать изменения? Переписать сообщение коммита в удаленном YourBranch после правильной перебазировки или если разрешены какие-либо конфликты? Затем вам нужно отправить внесенные вами изменения в локальное хранилище в удаленное хранилище YourBranch.

Yahoooo...! Вы успешно сделали перебазирование.

Вы также можете заняться:

git checkout master
git merge YourBranch

Когда и почему? Объедините вашу ветку с master, если внесены изменения, внесенные вами и другими соавторами. Что делает YourBranch современным с master, когда вы захотите поработать над той же веткой позже.

                            ~:   (๑ơ ₃ ơ)♥ rebase   :~
+101
источник

git fetch origin master:master извлекает последнюю версию master, не проверяя ее.

Так что все, что вам нужно, это:

git fetch origin master:master && git rebase master rebase 👌

+5
источник

1. Сначала обновите мастер...

git checkout [master branch]
git pull [master branch]

2. Теперь перебазируем исходную ветку с главной веткой

git checkout [source branch]
git rebase [master branch]
git pull [source branch] (remote/source branch)
git push [source branch]

Если ветвь источника еще не существует на удаленном компьютере, выполните:

git push -u origin [source branch]

"и вуаля..."

+5
источник

Шаг 1:

git fetch origin

Шаг 2:

git rebase origin/master

Шаг 3: (исправить, если возникнут конфликты)

git add .

Шаг 4:

git push --force
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос