Size: a a a

2020 July 08

JC

Julian =) Coffee in pro.git::next
А как нормально сквашить комиты так, чтоб их можно было запушить на гитлаб без форспуша?
Просто как я понял, после того как я засквашил комиты, у меня история не совпадает и гитлаб отказывается принимать(
источник

JC

Julian =) Coffee in pro.git::next
делал через git rebase -i master~6 и слил шесть комитов в один
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
Чёт похоже, что ты пытаешься в мастере коммиты засквошить? Уже пушнутые в мастер?
источник

EZ

Evgenii Zheltonozhsk... in pro.git::next
источник

JC

Julian =) Coffee in pro.git::next
Ага🙈
Ну так наверное делать не стоит, как я понял
источник

JC

Julian =) Coffee in pro.git::next
Да я просто не умею нормально ридми оформлять, поэтому оно превращается в череду комитов, ну и я решил его засквошить
источник

D

Dmitry in pro.git::next
И начинаешь на Хаскеле переписывать
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
Julian =) Coffee
Ага🙈
Ну так наверное делать не стоит, как я понял
Если так, то ты задал противоречивый вопрос
источник

D

Dmitry in pro.git::next
Ну и нужно не сквошить а фиксапить
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
Засквошить запушенные коммиты так, чтобы их можно было пушнуть без форспуша — нельзя
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
И зафиксапить нельзя
источник

JC

Julian =) Coffee in pro.git::next
Понял
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
И ничего с ними сделать нельзя
источник

Dv

Dr. Friedrich von Ne... in pro.git::next
В этом как раз и смысл форспуша :)
источник
2020 July 09

N

Nick Name in pro.git::next
привет. есть проблемка - запихнул в коммит лишнее. а коммит старый. я бы хотел выдергнуть именно те строчки, которые лишние из файла из коммита и сделать новый коммит с уже существующими изменениями (не всеми, файл один только)
источник

N

Nick Name in pro.git::next
типа есть коммит 1111111 don't need Diff hlgroups
и есть существующие незакомичченые изменения, в котором есть файл coc-settings.json.
я бы хотел из коммита 1111111 убрать несколько строчек и чтобы эти строчки пошли как в новый коммит. а в 1111111 коммите убрались
источник
2020 July 10

P

Pavel in pro.git::next
Nick Name
привет. есть проблемка - запихнул в коммит лишнее. а коммит старый. я бы хотел выдергнуть именно те строчки, которые лишние из файла из коммита и сделать новый коммит с уже существующими изменениями (не всеми, файл один только)
Проще всего накатить новые изменения которые отменяют то что не нужно отдельным коммитом.

Изменение уже закоммиченного коммита это изменение истории, то есть если вы его измените, то все коммиты после него изменят свои хеши, по сути создастся альтернативная ветка истории. Каждому разработчику у которого выкачана ветка придется переключиться на новую версию ветки (что не тривиально), какие-нибудь CI могут начать фейлиться из-за этого.

Если же вы один работаете и рисков нет, или если вы договорились с остальными разработчиками о том что вы собираетесь менять историю, то проделать это можно например
1) создав коммит с изменениями которые откатывают ненужные строки в старом коммите
2) интерактивным ребейзом перенести этот коммит за нужный вам коммит и пометить как "fixup"
3) проверить что все как надо и зафорспушить новую историю
источник

N

Nick Name in pro.git::next
Pavel
Проще всего накатить новые изменения которые отменяют то что не нужно отдельным коммитом.

Изменение уже закоммиченного коммита это изменение истории, то есть если вы его измените, то все коммиты после него изменят свои хеши, по сути создастся альтернативная ветка истории. Каждому разработчику у которого выкачана ветка придется переключиться на новую версию ветки (что не тривиально), какие-нибудь CI могут начать фейлиться из-за этого.

Если же вы один работаете и рисков нет, или если вы договорились с остальными разработчиками о том что вы собираетесь менять историю, то проделать это можно например
1) создав коммит с изменениями которые откатывают ненужные строки в старом коммите
2) интерактивным ребейзом перенести этот коммит за нужный вам коммит и пометить как "fixup"
3) проверить что все как надо и зафорспушить новую историю
у меня второй вариант - свои .dotfiles
первый шаг не понял - создать коммит с изменениями, которые откатывают ненужные строки в старом коммите.
а как такой коммит создать?)  к примеру у меня старый коммит выглядит как на скрине. я сюда случайно впихнул изменение SignifySign групп,  а это лучше вынести в другой коммит.
источник

P

Pavel in pro.git::next
Nick Name
у меня второй вариант - свои .dotfiles
первый шаг не понял - создать коммит с изменениями, которые откатывают ненужные строки в старом коммите.
а как такой коммит создать?)  к примеру у меня старый коммит выглядит как на скрине. я сюда случайно впихнул изменение SignifySign групп,  а это лучше вынести в другой коммит.
Надо сделать коммит который будет менять эти SignifySign группы обратно из того состояния которое получилось в результате того коммита.

Условно если в коммите значение A менялось на значение B, то в отменяющем коммите значение B должно меняться на значение A.

Если это запарно, то можно пойти другим путем, чекаутнуться в истории на тот коммит, создать там ветку, изменить коммит через --amend потом ребейзнуть или черрипикнуть туда последующие коммиты из основной ветки (я сейчас уже подзабыл как это можно ребейзнуть, но черрипикнуть через range точно можно).
Потом ресетнуть туда правильную ветку, чекнуть что все ок и зафорспушить.
источник

P

Pavel in pro.git::next
И да, забыл упомянуть, если в истории после этого коммита были мержи с конфликтами, то их снова придется резолвить
источник