@anticler

Как сделать commit начиная с HEAD в старую ветку, которая уже была объединена с master?

Необходиомо находясь на ветке master сделать коммит в отдельную ветку mybranch начиная с текущей позиции (HEAD), при этом ветка mybranch уже была слита с master когдато.

Пробовал так
git checkout mybranch
git commit -a -m "Some changes"

но в таком случае, я переключаюсь на старый не актуальный код, который был на момент создания mybranch. Примерно так:
.                 merge       (HEAD)
A1 -- A2-- A3 ---- A4 ---A5 --- A6
            \     /
             B1--B2 ---------------- B3
                                 "Some changes"

мне необходимо работать с актуальной версией проекта, хотелось бы чтоб было так:

.                 merge
A1 -- A2-- A3 ---- A4 ---A5 --- A6 ---- A7
            \     /              \
             B1--B2               B3 ---- B4
                            "Some changes"
  • Вопрос задан
  • 955 просмотров
Решения вопроса 1
Lobotomist
@Lobotomist
Software Developer
Вы же все замечательно нарисовали: ответвляетесь от нужного коммита (HEAD) и делаете коммит =)
Я так понимаю, проблема в переносе указателя ветки на другой коммит.

Тогда вот наиболее простой вариант: Делаете чекаут ветки с перезаписью указателя, если она существует (опция -B) и коммитите в нее.
git checkout -B mybranch
git commit ...


Можно еще так (не знаю только зачем, если есть первый вариант):
git branch -D mybranch
git checkout -b mybranch
git commit ...


Еще можно использовать reset --hard для ветки, но это, в данном случае, извращение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kirill89
@kirill89
Как я понимаю, у вас актуальная версия кода лежит в master? Вам, видимо, сначала нужно master замерджить в mybranch. Ну или пересоздать mybranch из мастера.
Ответ написан
POS_troi
@POS_troi
СадоМазо Админ, флудер, троль.
git checkout Some_changes
git merge master
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы