はじめに
こんな投稿を見かけたので遊んでみました。
Oh My Git!
「Oh My Git!」は、ユーザーが Git の基本的なコンセプトと操作を学ぶことができるオープンソースのゲームです。
セットアップ
以下のダウンロードページから zip ファイルをダウンロードして展開、起動します。
学べる Git コマンド
選択肢に出てくるコマンドなどパラパラと書いてます。
-
intro:基本的な操作
git init
git add
git commit
git pull
git push
-
files:ファイル作成・削除(Git というよりシェル)
rm
touch
-
branches:ブランチの理解・操作
git checkout
git checkout ^HEAD
git checkout <branch-name>
git checkout --detach <branch-name>
git branch
git branch -D
git reset --hard
git merge
-
merge:ブランチの統合
git merge
-
index:インデックス(ステージングなど)の理解
git reset
-
remotes:コンフリクト解消
- 同上
-
changing-the-past:歴史の改変
git rebase
git rebase -i
git cherry-pick
-
shit-happens:起きた問題への対処
git checkout [commit] [file]
git reset [commit]
git commit -a
git revert
git reflog
-
workflows:リポジトリのクローン
git clone
-
bisect:変更履歴の二分探索
git bisect start
git bisect good
git bisect bad
-
stash:変更の退避・復元
git stash
git stash push
git stash pop
git stash apply
git stash list
git stash clear
git stash drop
git stash branch
-
tags:タグの操作
git tag <tag-name>
git tag -d
git push <remote> <tag-name>
git push <remote> --tags
git push <remote> --delete <tag-name>
git fetch <remote> --prune --prune-tags
遊び方
Levels
を選択する
画面遷移後、やりたいやつを選ぶ(クリアしたミッションは GREEN に変わる)
例えば Levels
> stash
> Stashing
の画面だとこんな感じになっています。
- 画面中央がブランチツリーです
- 水色のキャラクターの位置は現在チェックアウトしているコミットです(つまり HEAD)
- 画面下部のカードを使って操作をすることも、右下のエディタを使って操作することも可能です
- 画面右側の赤でハイライトされているものがミッションになります
- クリアすると緑色に変わります
感じたこと
ざっくり、このゲームでやってることが理解できれば普段の開発業務における Git 操作で困ることほとんどなくなりそうだなと思いました。
- 各ミッションが実際に Git を操作したいときの動機と同じなので、具体的なゴールをイメージしながらコマンドの入力と実際の結果を間近で体験しながら学ぶことができそう
- 視覚的にリポジトリの状態を把握できるので、コマンドとその結果がどうリポジトリ(ブランチ)に反映されるかがイメージしやすい
- ゲームなので、リポジトリやブランチを破壊しても簡単に元の状態から再スタートできる
おわりに
git bisect
ってマイナーコマンドだと思ってたけどみんな使うの...??