Как переместить un-push-коммиты из одной (локальной) ветки в другую в git? - PullRequest
1 голос
/ 10 апреля 2019

Я хотел бы переместить мой локальный коммит, еще не переданный в удаленный, в другую ветвь.

Я должен следовать этому рабочему процессу.Мы только начали с этой практики, так что вроде забыли.У нас есть этот JIRA & Bit-Bucket.Мы должны создать ветку из элемента JIRA.Затем я извлекаю эту ветку локально, работаю над этим и фиксирую (отправляю) ее, и делаю запрос на извлечение для рецензента кода, затем он сливается с соответствующей веткой и вверх с мастером.

Я забылсоздать ветку для элемента JIRA.Вместо этого я работал и посвятил себя своему местному отделению, скажем, 4.10BR.Я сделал 3 отдельных коммита (в отношении этих 3 отдельных элементов JIRA).

Мой журнал git говорит ... В выпуске ветки / 4.10 Ваша ветка опережает 'origin / release / 4.10' на 3 коммита.(используйте «git push» для публикации ваших локальных коммитов)

Теперь я бы создал ветку отдельно для этих 3 элементов в (через) Jira-BitBucket, проверил эти ветви и «переместил» мои коммиты вэти ветви (скажем, b1, b2 и b3), а затем подтолкнуть эти ветви.

Поскольку я все еще учусь в git, у меня нет способа продвинуться в этом вопросе?

Ответы [ 2 ]

4 голосов
/ 10 апреля 2019

Это распространенная ошибка рабочего процесса, которую я делал десятки раз за последнее десятилетие.Обычный способ, с которым я имею дело, заключается в следующем:

Создайте новую фактическую истинную ветвь, которую вы должны были создать в первую очередь:

# from release/4.10
git branch feature/some_name

Теперь есть ветвьfeature/some_name создан, который содержит ваш единственный коммит работы.Единственная оставшаяся проблема - ветка release/4.10, которая теперь также содержит нежелательный коммит.Учитывая, что вы не все же нажали ветку релиза, мы можем попытаться сделать полный сброс этой ветки, чтобы удалить этот коммит:

# from release/4.0, again
git reset --hard HEAD~1

Теперь у вас есть ветвь функций иВетвь релиза находится в том состоянии, в котором она была бы, если бы вы следовали правильному рабочему процессу с самого начала.

1 голос
/ 10 апреля 2019

Вы можете создать новую ветку из текущей ветви с помощью команды git checkout -b 'name-of-branch'.Это сохранит ваш код с 3-мя коммитами, не вставленными в новую ветку.Если вы уже создали ветку, вы можете объединить текущую ветку с другой веткой с помощью git merge 'other-branch'.

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