Как обновить мою рабочую ветку 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 просто выполните следующие действия:
выберите "Журнал"
щелкните правой кнопкой мыши на "развивать"
нажмите на любой
-Объедините «разработку» с «feature1» (сохраняет всю историю коммитов из вашей ветки)
или же
-Rebase «develop» в «feature1» (удаляет историю коммитов из вашей ветки и вместо этого имеет историю из разработки)
Наконец Git нажмите
Чтобы избежать разработки коммитов с помощью простого слияния, я обнаружил, что более простой (менее технологичный) способ сделать это - особенно, если вы уже нажали:
- Измените для разработки и убедитесь, что вы ввели последние изменения
- Создайте еще одну ветку из разработки,
feature1_b
- Объединить
feature1
кfeature1_b
- Удалите, если хотите оригинал
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"
- git checkout разработать
- git pull3.git checkout localbranch
Затем запустите слияние или перебазирование в зависимости от ваших требований.
- git merge разработать
- git rebase разработать
Я нашел решение. Оформить предыдущую ветку и вытащить новую ветку /questions/60666950/obnovit-vetku-github-iz-drugoj-vetki/61536002#61536002