💦

誤ってパスワード等のクレデンシャルをgit commitした場合の復旧方法

2022/11/27に公開約600字

クレデンシャルについて、git pushに留まらず、リモートリポジトリへgit commit、mergeをした場合、コミット履歴を含めてリセットするのが手っ取り早い。以下はコミット履歴を行う際のコマンドである。

% git checkout XXX //XXXは復旧対象のブランチ。チェックアウトする。
% git reset --hard HEAD~N //Nは削除するコミット数。コミット履歴をリセットする。
% git push -f origin XXX //XXXには復旧対象のブランチ。強制プッシュする。

基本的に強制プッシュを不可とするポリシーがブランチに適用されている。以下のエラーが出る場合は、暫定的にGitHubの「Settings」-> 「Branches」-> 「Branch protection rules」-> 「Allow force push」の設定を変更する必要がある。

remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: Cannot force-push to this protected branch

Discussion

ログインするとコメントできます