なんかコロナで在宅になってたり、このBlogのシステムの移行したり、家のサーバ環境を一新したり、etc,etc...と色々やってたら、もう9月になってたことに気付いてちょっとビビった(´・ω・`)。

しばらく何も書けてなかったのだが流石にその間に忘れちゃってることも多いので、今月辺りからちゃんと残すようにしよう…。

最近は仕事の内容がインフラからWebサイトの診断とかそういうのがメインになってきてやることが結構変わってきてるのだが、その中で.git/indexからファイルのPATHを復元したいということがあった。

最初は単純にstringsコマンドあたりで雑に中のテキスト読めばいいじゃんと思ってたのだが、これだとちゃんとしたPATHは取得できない事が多く、ちょっと微妙だった。

結論としては、以下のようにリポジトリを新規で作って.git/indexを置き換えるだけでOK。 意外とかんたんだった(´・ω・`)。

# 一時作業リポジトリ用のディレクトリを作成して移動
mkdir -p tmp && cd tmp

# git/indexを読み込ませるためのリポジトリを作成
git init

# `.git/index` を置き換え
cp /from/src/.git/index .git/index

# ファイルの一覧を出力
git ls-files

使うことなんてそうそうないと思うけど、いつの日か役に立つ…ことがあるのかもしれない。