Здравствуйте, Artem Korneev, Вы писали:
AK>Иногда по ошибке делаю commit и оно создает новую запись в списке коммитов вместо того чтоб обновить текущую. Или делаю наоборот и тогда оно сливает мое изменение с предыдущим, от другого человека. AK>Есть ли какой-нибудь простой способ сделать чтоб оно создавало новую запись только если сейчас нет текущей, которая еще не была смержена в основную ветку? AK>Не то чтоб прям это часто случалось, но все равно надоедает. Пару раз в полгода приходится вручную перекидывать все в staging и пересоздавать коммит.
Эээ...
Зачем куда-то что-то перекидывать?
Если речь о случайном amend вместо нового коммита, то git reflog показывает id коммита перед ошибкой, его можно сразу вытащить обратно. (Удобнее всего через git checkout -B $current_branch $commit_id.)
Сразу замечу к слову — git reflog по умолчанию показывает однострочно, но через git reflog --pretty=short, git reflog -p и т.д. — можно менять показ на нужный (аналогично git log).
Если наоборот, то через interactive rebase и подкоманды squash/fixup такой случайно отдельный коммит объединяется с предшественником.
По исходному вопросу — штатно такого не знаю, но написать алиас или даже отдельную команду, которая анализирует ситуацию, и выбирает действие — должно быть достаточно просто.
Думаю, никто этим не заботится именно потому, что восстановление тривиально.