12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Git初心者はチーム開発前に Oh My Git! で遊んでおくといいと思う

Posted at

はじめに

こんな投稿を見かけたので遊んでみました。

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 を選択する

スタート画面.jpg

画面遷移後、やりたいやつを選ぶ(クリアしたミッションは GREEN に変わる)

Levelsの画面.jpg

例えば Levels > stash > Stashing の画面だとこんな感じになっています。

levels-stashing.jpg

  • 画面中央がブランチツリーです
  • 水色のキャラクターの位置は現在チェックアウトしているコミットです(つまり HEAD)
  • 画面下部のカードを使って操作をすることも、右下のエディタを使って操作することも可能です
  • 画面右側の赤でハイライトされているものがミッションになります
    • クリアすると緑色に変わります

感じたこと

ざっくり、このゲームでやってることが理解できれば普段の開発業務における Git 操作で困ることほとんどなくなりそうだなと思いました。

  • 各ミッションが実際に Git を操作したいときの動機と同じなので、具体的なゴールをイメージしながらコマンドの入力と実際の結果を間近で体験しながら学ぶことができそう
  • 視覚的にリポジトリの状態を把握できるので、コマンドとその結果がどうリポジトリ(ブランチ)に反映されるかがイメージしやすい
  • ゲームなので、リポジトリやブランチを破壊しても簡単に元の状態から再スタートできる

おわりに

git bisect ってマイナーコマンドだと思ってたけどみんな使うの...??

12
8
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
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?