🚀
.git フォルダの中のファイルを直接解析して HEAD の commit hash を取得する
.git フォルダの中のファイルを直接解析して HEAD の commit hash を取得する
import os
def get_head_commit_hash(git_dir='.git'):
# .git/HEAD ファイルのパス
head_path = os.path.join(git_dir, 'HEAD')
# HEAD ファイルを読み取る
with open(head_path, 'r') as f:
ref = f.readline().strip()
# HEAD が参照しているブランチのパスを取得
if ref.startswith('ref:'):
ref_path = os.path.join(git_dir, ref.split(' ')[1])
# ブランチの参照ファイルを読み取る
with open(ref_path, 'r') as f:
commit_hash = f.readline().strip()
else:
# 直接コミットハッシュが書かれている場合
commit_hash = ref
return commit_hash
# 使用例
commit_hash = get_head_commit_hash()
print(f"{commit_hash}")
参考
上記コードは The AI Code Editor cursor で生成しました。
使用したプロンプト
.git フォルダの中のファイルを解析して HEAD の commit hash を取得する
Discussion