Советы для Продвинутого Пользователя Git. Окончание
Начало
Продолжение
4. Добавить файлы в предыдущий коммит
Как и при исправлении орфографических ошибок в сообщении коммита, вы иногда можете забыть добавить файл в конкретный коммит. Вместо добавления нового коммита в историю Git вы можете изменить предыдущий коммит, не изменяя сообщение. Сначала нужно добавить все файлы, которые вы хотите добавить в предыдущий коммит.
> git add .А затем выполнить команду commit с параметрами
amend и no-edit:> git commit --amend --no-editВ Visual Studio или Rider также можно использовать флажок Amend, как и в предыдущем совете. Также, как и предыдущем совете, эта команда изменяет историю Git и может потребовать принудительного пуша, если изменения уже были отправлены в удалённый репозиторий.
5. Отменить изменения в ранее зафиксированных файлах
Вы можете начать вносить изменения, а потом обнаружить, что изменения вам больше не нужны. К счастью, вернуться к заведомо исправному состоянию просто:
> git co Program.csЕсли вы хотите откатить изменения в IDE:
Updated 1 path from the index
- В Visual Studio нажмите правой кнопкой мыши на файл в окне Solution Explorer и выберите пункт меню Git > Undo changes.
- В Rider нажмите правой кнопкой мыши на файл в окне Commit и выберите пункт Rollback.
6. Отменить последний локальный коммит Git
Вы работали над важным функционалом, а потом случайно сделали коммит в основную ветку, когда надо было создать новую ветку для функции? Чтобы отменить коммит локально, выполните следующую команду:
> git reset --soft HEAD~1Git сравнит текущий коммит в HEAD (ваш последний коммит) с коммитом перед ним (предыдущим) и вернёт файлы в статус предыдущего коммита. На этом этапе у вас будет возможность создать новую ветку и правильно сохранить изменения.
Если вы хотите откатить изменения в IDE:
- В Visual Studio в окне Git с историей репозитория нажмите правой кнопкой мыши на предыдущий коммит и выберите Reset. Вам будет предложено 2 варианта: Keep changes (--mixed), который сохранит изменения, или Delete changes (--hard), который удалит все изменения до выбранного коммита.
- В Rider в окне Git выберите коммит и в выпадающем меню выберите Reset Current Branch To Here. Rider предложит дополнительные варианты: soft (вернёт изменения в статус staged), keep (откатит файлы до выбранного коммита, но сохранит локальные изменения).
Как и
amend, команда reset перезапишет историю Git. Но, в отличие от неё, reset используется для защищённых веток, таких как main, которые вы могли случайно изменить локально, но не собирались отправлять изменения в удалённый репозиторий.Источник: https://blog.jetbrains.com/dotnet/2021/09/13/advanced-git-workflow-tips/