Сделал "Reset current branch to here" в режиме "Hard", но забыл сделать "Shelf" для не зафиксированных изменений, над которыми работал весь день. В итоге проделанная работа за день была успешно стерта.
В такие моменты главное не поддаваться панике 😅
В Idea есть замечательная функция LocalHisotry, которая автоматически сохраняет все изменения над файлами. Если затертых файлов было не много, то нажмите ПКМ и в меню выберете Local History —> Show History
Скорее всего вы увидите состояние файла до выполнения git reset.
Если же измененных файлов было много, то восстанавливать их по одному довольно муторно. Поэтому нажмите ПКМ по корневой папке проекта и также выберете Local History —> Show History.
Уже наверное полгода у меня есть YubiKey 5C NFC. Пользуюсь им как аппаратным ключом и для получения OTP паролей, и только сейчас дошли руки разобраться что там по работе с SSH.
А все оказалось достаточно просто. Вот эта команда позволяет сгенерировать SSH ключ, который будет связан с ключом, который существует внутри YubiKey:
⚠️
Для работы такого ключа нужен OpenSSH версии 8.2 и выше как на сервере, так и на вашем ПК
Из-за этого ограничения пришлось обновить сервера с RHEL 8 на RHEL 9
Все как с обычными ключами, у вас появится 2 файла в папке ssh key_name и key_name.pub. Только вот, воспользоваться секретным ключем без подключения YubiKey не выйдет, также нужно будет ввести пароль от YubiKey и коснуться его.
Если каждый раз вводить пароль от YubiKey не хочется, то удалите параметр -O verify-required. Тогда нужно будет только касаться ключа.
В интернете полно гайдов, как использовать GPG агент вместо SSH, когда у вас вместо ssh ключа будут ключи gpg. Но эти настройки выглядит как костыли.
GitHub и GitLab
Такой ключ подойдет и для доступа к репозиториям. Но необходимо будет прописать в ~/.ssh/config информацию о том, какой ключ использовать: