GitHubにはブランチActivityという機能があり、そこでは強制プッシュなどで見えなくなったコミットのハッシュも見つかるようだ。ローカルの.gitディレクトリーも初期化した状態で強制pushしても、この機能を使うとすんなりと最後に正常だった状態を参照し、救出できる。ブランチActivityにはブランチ一覧ページの各ブランチの操作メニューから移動する。「ブランチの削除」ボタンや「ブランチの名前変更」メニュー項目などが近いので危ない。
Activityからは、救出したい状態の操作メニューでブランチの比較へ飛ぶ。DIFFページではそのコミットの状態でリポジトリーを閲覧できるので、CodeメニューからZIPファイルをダウンロードすれば救出できる。プッシュや、ブランチの作成・削除、PRの作成、マージなど、GitHub側で認識できる操作は揃っているようだ。コミット履歴を取り戻すことは無理そうなので、完全な復旧というわけにはいかない。
gh-pagesブランチの古いコミットを確認していて、やりたいことがブランチのつくり直しでしか実現できなさそうだとわかった。しょうがないので.gitディレクトリーを削除し強制プッシュしたが、うっかり古いコミットをチェックアウトした状態でpushしてしまい、復旧不可能になった。もちろんローカルでreflog
もできないので、どうしようかと思案していたが、GitHub側では完全に消えないことがわかった。たまたまgh-pagesブランチだったので、Actionsのログからハッシュを探して救出した。Activityについてはその後発見することになる。