Можно ли commit и push изменения из одной ветки в другую.
Предположим, я совершил изменения в branch1, равная и хочу, чтобы подтолкнуть их к BRANCH2.
От branch1, равная, это допустимо делать:
git push origin **BRANCH2**
А потом сбросить branch1, равная?
Это будет практически работать.
При нажатии по умолчанию филиал, необходимо указать Реф источник и цель Реф:
git push origin branch1:branch2
Или
git push <remote> <branch with new changes>:<branch you are pushing to>
Конечно, хотя это будет работать только если это'ы быстрый форвард BRANCH2 или если вы заставите его. Правильный синтаксис, чтобы сделать такую вещь
git push <remote> <source branch>:<dest branch>
Смотрите описание и "refspec" на Git толчок странице Более подробно о том, как он работает. Также обратите внимание, что как толчок силы и сбросить несколько операций, что "переписать историю", и должен'т быть предпринята слабонервных, если вы не'повторно абсолютно уверен, вы знаете, что вы'повторно делать в отношении любых удаленных репозиториев и другие люди, которые имеют вилки/клоны одного и того же проекта.
Это's очень простой. Предположим, что вы внесли изменения в ваш филиал А, который находится на месте локально и удаленно, но вы хотите, чтобы подтолкнуть эти изменения на ветку Б, который не'т существуют везде.
Шаг-01: создание и переключиться на нового филиала Б
ГИТ кассе -б б
Шаг-02: добавить изменения в новом местное отделение
ГИТ добавить . //или конкретный файл(ы)
Шаг-03: фиксации изменений
коммит в git'е -м "и commit_message и"
Шаг-04: внесения изменений в новый филиал Б. Ниже команда создает новую ветку Б, а также удаленно
ГИТ пуш происхождения Б
Теперь, вы можете проверить, что оба филиала Б будет иметь больше, чем один коммит филиал в. И когда ты будешь кассе филиала а этих изменений выиграли'т быть там, как они были оттеснены в филиал Б.
Примечание: Если ты совершил свои изменения в ветку ** и после этого вы хотите переложить эти изменения в новую ветку Б** затем вам придется сбросить сначала эти изменения. #HappyLearning
В моем случае у меня был один локальный коммит, который был'т подтолкнули к \происхождение мастера
, но совершил на ветку мой местный "мастер". Этот локальный коммит должен быть теперь отодвинули в другую ветку.
С мерзавец расширения вы можете сделать что-то вроде этого:
Вы также можете сделать это на командная строка ЖКТ. Пример скопирован из Дэвид Кристенсен:
Я думаю, что вы'll найти
в Git выбирают
+ `ГИТ сброс будет гораздо быстрый рабочий процесс:используя ваш же сценарий, с "особенность" и является филиалом с верхний коммит выполняется неправильно, это'd быть намного легче сделать это:
ГИТ мастер касс
ГИТ подбирать функция
ГИТ характеристика кассеГИТ сброс --жесткий руководитель^`
экономит довольно много работы, и это сценарий, что мерзавец вишня-выбор предназначен для обработки.
Я'll тоже обратите внимание, что это также будет работать, если он's не верхнюю совершить; вы просто нуждаетесь в commitish для аргумента сливок, через:
ГИТ мастер касс
ГИТ подбирать $в SHA1
ГИТ характеристика кассе
Git для перебазирования -я ... # вжик определенный коммит из истории
Я получаю плохой результат с Git толчок происхождение branch1, равная:команда branch2
:
В моем случае, branch2
был удален и branch1, равная` был обновлен с новыми изменениями.
Таким образом, если вы хотите, чтобы изменения только нажать на branch2 из branch1, равная`, попробуйте выполнить следующие действия:
На branch1, равная:
в Git добавить .`
На branch1, равная:
коммит в git'Е -М 'комментарий'`
На branch1, равная:
git толчок происхождение branch1, равная`
На branch2:
ГИТ тянуть происхождения branch1, равная`
На branch1, равная`: вернуться к предыдущей фиксации.
вы можете сделать это легко
git status
git add .
git commit -m "any commit"
git pull origin (branch name, master in my case)
git push origin current branch(master):branch 2(development)(in which you want to push changes)
Вы совершили в branch1 и хотите избавиться от этой фиксации без потери изменений? ГИТ сброс это то, что вам нужно. Сделать:
git branch BRANCH2
если вы хотите BRANCH2 новый филиал. Вы также можете объединить это с другой ветки, если хочешь. Если BRANCH2 уже существует, тогда оставляйте этот шаг.
Затем выполните:
git reset --hard HEAD~3
если вы хотите сбросить коммит на ветке вы совершили. Это требует изменения последних трех коммитов.
Затем выполните следующие действия, чтобы принести обнулился обязуется BRANCH2
git checkout BRANCH2
Этот источник был полезен: https://git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch