Как обновить мою ветку, когда я уже внес некоторые изменения - PullRequest
1 голос
/ 03 апреля 2020

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

Ответы [ 3 ]

2 голосов
/ 03 апреля 2020

Самый простой способ решить эту проблему - объединить обновленный мастер с вашей веткой.

Давайте предпримем шаги.

У вас было следующее:

             master
               v
*----*----*----*

Затем вы сделали это:

             master
               v
*----*----*----*
                \
                 *---*---*
                         ^
                       branch

В действительности у вас было это:

             master   origin/master
               v           v
*----*----*----*---*---*---*
                \
                 *---*---*
                         ^
                       branch

Самый простой способ - обновить мастер, а затем объединить его с вашей веткой, используя следующие команды:

git checkout master
git pull
git checkout branch
git merge master

Это даст вам следующее:

                         master
                      origin/master
                           v
*----*----*----*---*---*---*
                \           \
                 *---*---*---*
                             ^
                           branch

Если вам действительно нужно, чтобы ваша ветка основывалась на обновленном мастере, то вместо слияния мастера в вашу ветвь вам придется перебазировать ваша ветка сверху мастера, используя эти команды:

git checkout master
git pull                      ;; the first two are the same as above, to update
git checkout branch
git rebase master

Эти команды дадут вам такой результат:

                         master
                      origin/master
                           v
*----*----*----*---*---*---*
                            \
                             *---*---*
                                     ^
                                   branch
1 голос
/ 03 апреля 2020

Шаг 1. Извлеките из главной ветви и выполните шаг 2.

Шаг 2. Сначала вы создаете новую ветвь.

git branch <BranchName>
git checkout <BranchName>
git add -a -m "commt name"
git push 

, а затем создаете запрос на извлечение из в Master.

Готово

0 голосов
/ 04 апреля 2020

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

git checkout master
git pull
git log 

# Возьмите последний идентификатор фиксации из журнала и перенесите его в созданную вами ветку и нажмите

git checkout <branch>
git rebase <Commit-id>
git push 

Пожалуйста, дайте я знаю, сработало ли это, или я правильно понял ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...