5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

経験値がほしい

Last updated at Posted at 2025-12-02

経験値、ほしくないですか??

この記事を読むだけで、誰でも今日からものすごい経験値を得ることができます!
(怪しい記事じゃないです)

経験値がほしい

「経験値」ときいて、何を想像しましたか?

おそらく、大半の人が「知識・ノウハウ・経験」といった、業務上の経験値かと思います
なんたって、ここはQiitaですからね

でも、この記事で言う「経験値」は残念ながらそうではなく

いわゆる「EXP」、こっちの経験値です

つまりどういうこと?

ここまで、「???」となっている方も多いと思います
念のため言っておきますが、ゲームの攻略記事でもありません()

コミットをすると経験値をもらえるようにしてみた

スクリーンショット 2025-05-08 14.56.39.png

コミットをするたび、経験値がもらえます
うれしい

ざっくり説明していく

1.スクリプトを用意

・今回用意したもの

post-commit
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { printf >&2 "\n%s\n\n" "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-commit' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks')."; exit 2; }
#!/bin/bash

# 保存先(共通で使えるようにホームディレクトリに)
STATUS_FILE="$HOME/.git_xp_status.json"

# ファイルがなければ初期化
if [ ! -f "$STATUS_FILE" ]; then
  echo '{"level":1,"xp":0,"next":100}' > "$STATUS_FILE"
fi

# 現在の状態を読み込む
level=$(jq '.level' "$STATUS_FILE")
xp=$(jq '.xp' "$STATUS_FILE")
next=$(jq '.next' "$STATUS_FILE")

# 今回のコミットで追加された行数をカウント
added=$(git show --shortstat -1 | grep "insertion" | sed -E 's/.* ([0-9]+) insertion.*/\1/')

# 空だったら0
if [ -z "$added" ]; then
  added=0
fi

# 経験値加算
new_xp=$((xp + added))

# レベルアップ判定
if [ "$new_xp" -ge "$next" ]; then
  new_level=$((level + 1))
  new_next=$((next + 50)) # 次のレベルに必要なXPを増やす
  new_xp=$((new_xp - next))
  echo "🎉 Level Up! You reached Level $new_level!"
else
  new_level=$level
  new_next=$next
fi

# 新状態を保存
echo "{\"level\":$new_level,\"xp\":$new_xp,\"next\":$new_next}" > "$STATUS_FILE"

# 状態表示
echo "🧠 Commit XP: +$added"
echo "📈 Level $new_level [$new_xp / $new_next XP]"git lfs post-commit "$@"

こいつはコミットを監視して経験値を得るためのShellScriptです

2.スクリプトを配置

スクリーンショット 2025-11-17 18.29.06.png

.git / hooks 下にある post-commit に先ほどのスクリプトをペースト
(なければつくる)

3.ファイルの実行権限を与える

chmod +x post-commit

このコマンドを実行し、コミットをフックさせる

4.あとはコミットするだけ

スクリーンショット 2025-05-08 14.56.39.png

あとがき

今回は、単純に差分の行数がそのまま経験値になるようなってます
そのため、Unityなどを扱っている場合はprefabなどの差分でめっちゃ経験値もらえたりします
ので、色々カスタマイズしてつかってみるのがよさそうです

でも、やればやるだけ経験値がもらえていて、実際にそれは"自分がこれだけやったぞ"という証になるので、モチベーションには多少なりとも繋がるかとおもいます

ぜひ今日からレベリングしてみてください

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?