GitHubのリポジトリで、https://github.com/ユーザ名/リポジトリ名/tree/ハッシュ値(40桁) にファイルは存在するが、Commits の一覧に現れない、迷子になってしまったコミットというのが存在しうる。コミットの属するブランチが削除された場合、そのコミットが孤立してしまい Commits の一覧に現れなくなる。
そのようなコミットのページには「This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.」と表示される。
一般に、git で迷子になったコミットも、ターミナルで下記コマンドを実行すれば一覧表示に現れる。
git log --all --graph --oneline --reflog
それでもダメな場合、下記のコマンドで現れる場合もある。
git fsck --verbose 2>&1 | grep -o -E '[0-9A-Fa-f]{40}' | grep -v -E '0{40}' | sort -u | git log --stdin "$@"
しかし、他人のリポジトリをクローンして上記のようなコマンドを実行しても、ブランチが削除された迷子コミットは見えない。
参考