Как обновить мою рабочую ветку Git из другой ветки (разработка)?

Я сделал новую ветку для своего кода, как месяц назад, я создал ветку feature1 из развивающей ветки.

⇒  git branch 
  develop
* feature1

Я работаю над feature1 уже месяц, и многие изменения были внесены в разработку ветки. Как я могу обновить мою текущую ветку feature1, добавив последние коммиты в одну разработку?

Я не хочу проверять мастер и объединить мою ветку feature1. Также я не хочу использовать git cherry-pick для ручного перемещения коммитов из разработки в feature1.

Любая помощь?

11 ответов

Решение

Вы просто объединяетесь с feature1:

git checkout feature1
git merge develop

Нет необходимости привлекать другую ветку, такую ​​как master.

Сначала обновите свою ветку разработки, затем оформите вашу функцию и объедините ее.

git checkout develop
git pull
git checkout feature/myfeature
git merge develop

толкание, когда финиш (например, для запроса тяги)

git push origin feature/myfeature

Этот вариант использования очень полезен для обновления вашей PR-ветки. Во-первых, я бы порекомендовал вам сначала получить ваши удаленные изменения, т.е.git fetchа затем слить или переустановить из develop, но с удаленного, например

git rebase -i origin/develop

или

git merge origin/develop

Таким образом, вы обновите свою PR-ветку, не переходя между ветками.

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

      git pull
git co feature1
git pull
git merge --no-ff develop
git push

Я лично стараюсь использовать --no-ff каждый раз, когда я выполняю слияние, потому что, на мой взгляд, оно сохраняет историю в чистоте.

ФИЛИАЛЫ:

DEV ====> разработка

feature1 ====> работает


ШАГ 1 ОТПРАВКА GIT С САЙТА

проверяет ветку, которую вы синхронизируете

git status

добавить файлы для фиксации

git add .

совершает с описанием

git commit -m "COMMENT"

отправьте в ветку, которую вы синхронизируете

git push

ШАГ 2 СИНХРОНИЗАЦИЯ ОБНОВЛЕННОЙ РАБОЧЕЙ ВЕТКИ С DEV (разработка) - синхронизирует рабочую ветвь с ветвью разработки (обновляет ветвь разработки)

синхронизировать с пультом и переключиться на ветку DEV

git checkout DEV

запрос на объединение ветки, которую вы синхронизируете, с веткой feature1

git merge feature1

Объединить текущую ветку с веткой feature1

git push

ШАГ 3GIT НАЙТИ ПУЛЬТ - Обновите рабочую ветку из обновленной ветки разработки

подключается к опорной ветви

git checkout DEV

Изменения в поиске

git pull

Синхронизируется с вашей рабочей веткой

git checkout feature1

запрос на слияние ветки, которую вы синхронизируете с веткой DEV

git merge DEV

Объединить текущую ветку с веткой DEV

git push

В IntelliJ IDEA просто выполните следующие действия:

  1. откройте окно Git Tool (View->Tool Windows->Git)

  2. выберите "Журнал"

  3. щелкните правой кнопкой мыши на "развивать"

  4. нажмите на любой

    -Объедините «разработку» с «feature1» (сохраняет всю историю коммитов из вашей ветки)

    или же

    -Rebase «develop» в «feature1» (удаляет историю коммитов из вашей ветки и вместо этого имеет историю из разработки)

  5. Наконец Git нажмите

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

  1. Измените для разработки и убедитесь, что вы ввели последние изменения
  2. Создайте еще одну ветку из разработки, feature1_b
  3. Объединить feature1 к feature1_b
  4. Удалите, если хотите оригинал feature1

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

Если вы еще не нажали, ответ @stackdave - хороший ответ.

Использовать извлечение без слияния для извлечения определенных файлов или извлечения из конкретного коммита, я попробовал этот способ, и он работает!

git checkout develop <commit hash>_or_<specific-files-path>

Источник.

$ git checkout <another-branch> <path-to-file> [<one-more-file> ...]
$ git status
$ git commit -m "Merged file from another branch"
  1. git checkout разработать
  2. git pull3.git checkout localbranch

Затем запустите слияние или перебазирование в зависимости от ваших требований.

  1. git merge разработать
  2. git rebase разработать

Я нашел решение. Оформить предыдущую ветку и вытащить новую ветку /questions/60666950/obnovit-vetku-github-iz-drugoj-vetki/61536002#61536002

Другие вопросы по тегам