Skip to content

FAQ GitHub

bopoh13 edited this page May 25, 2022 · 6 revisions

Q: Как обойти ошибку авторизации SSH

gpg: skipped SHA1: Unusable secret key
gpg: signing failed: Unusable secret key
error: gpg failed to sign the data
fatal: failed to write commit object

A: Если авторизаци раньше работала, то нужно обновить ключи.

  • Нужно проверить установленные ключи можно командой
for keyfile in ~/.ssh/id_*; do ssh-keygen -l -f "${keyfile}"; done | uniq
  • Проверяем вывод. Если ничего нет, то нужно создать новые ключи. ^^ Если в скобках указано Ed25519 или RSA 3072/4096, то обновляем ключи. В противном случае ключи устарели, и лучше создать новые с указанными выше методами шифрования.
  • Просмотреть и подсветить секретные ключи
gpg -K --keyid-format LONG | grep -C 1 "^sec" | GREP_COLOR="01;36" egrep -i --color "([0-9A-F]{8,}|-\W+)"
  • Продлеваем действие секретного ключи
gpg --edit-key <SHA1>
expire
6m
y    # подтвердить
save # сохранить изменения

Q: Как обновить основную ветвь master в локальном репозитории своего Fork?

A: Нужно чтобы в оригинальном репозитории появилось хотя бы 1 изменение (без новых изменений не обновятся соавторы, ⭐ и релизы). Атрибут --ff не сохранит новую запись в истории.

  • Команда для выбора ветви master и слияние (merge) с удалённым репозиторием
git checkout master
git merge --ff <origin>/master
  • Команда для просмотра списка доставки (fetch) удалённых (origin) репозиториев
git remote -v

Q: Как удалить файл из последнего изменения (commit)?

A: Последняя правка со всеми изменёнными файлами не будет отменена.

    • Команда перемещения курсора на предыдущее изменение (commit)*
git reset --soft HEAD~1
    • Команда отмены индексации файла; возврат к предыдущему изменению (commit)*
git reset HEAD <PATH>/<FILE>
    • Команда сохранения изменения (commit) с правкой последнего названия* Атрибут -S добавит подпись к изменению.
git commit -S -c ORIG_HEAD

Q: Как соединить последние изменения в одно целое?

A: В активной ветви выбрать изменение (commit) и скопировать его SHA1. Последовательность действий:

  • Команда перемещения курсора на нужное изменение через SHA1 (не удаляет текущие правки)
git reset --soft e01c5ha
  • Команда добавления файла в индекс
git add <FILE>
  • Команда внесения правки в выбранное изменение (сохранённые изменения за ним будут удалены) Атрибут -S добавит подпись к изменению.
git commit --amend -S
  • Команда форсированной отправки (push -f) изменений (commits) в удалённый (origin) репозиторий
git push -f origin master