読み込み中

ソースを読み込み中… すべてのファイル

    概要

    Branchwise はコマンドラインで git を教えます。どのレベルもコミットグラフとして描かれた小さなリポジトリから始まり、その横にゴールが描かれています。本物の git コマンドを入力すると、実行するたびにグラフが変わり、リポジトリがゴールと同じになった時点でクリアです。どうやってたどり着いたかは問いません。

    34 のレッスンは git init とステージングエリアに始まり、ブランチ、マージとそのコンフリクト、タグ、作業の取り消しを経て、cherry-pick、対話的リベース、rebase --onto、--autosquash を使う fixup コミット、--update-refs による積み重ねたブランチ、チームメイトの origin との fetch、pull、push、force-with-lease、bisect、ワークツリーまで進みます。コマンドはエラーも含めて git と同じように応答します。

    制作
    wasmga.me
    公開
    2026

    操作ガイド

    コマンドラインで

    キー動作
    Typeコマンドを入力。git コマンドのほか、レッスンで使う cd、edit、make test、ls
    Enterコマンドを実行。空の行では一時停止
    上/下前に打ったコマンド
    左/右カーソルを動かす
    クリック/タッチコミットはその ID を、ブランチやタグはその名前をコマンドに加える

    リベースの ToDo リストで

    キー動作
    上/下行を選ぶ
    P, S, F, Dpick、squash、fixup、drop のどれかにする
    K/J行を上下に動かす
    Enterリベースを始める
    Q/Backspace何も変えずに抜ける

    早見表

    git 以外

    hint
    このレベルの手がかり
    solution
    クリアする方法の一つ(ヒントより多く減点)
    undo
    最後に何かを変えたコマンドを取り消す
    clear
    出力を消す

    コミットの指し方

    HEAD, @
    今いる場所
    main~2
    第一親をたどって 2 つ前のコミット
    main^2
    マージの第二親
    HEAD@{1}
    HEAD が 1 回前に動く前にいた場所(reflog)
    @{u}
    今のブランチの上流。origin/main など
    -
    switch や checkout で使うと、直前にいた場所

    スコア

    1000
    各レベル、最短の手順と同じ数のコマンドで済んだとき
    -100
    それを超えたコマンド 1 つごと
    -250
    ヒント 1 回ごと。solution は 2 回分

    ヒント

    1. グラフが思わぬ形になったら git status と git log --all を実行しましょう。図に描かれている内容が文字で出ます。
    2. 薄く表示されたコミットは、もうどのブランチ、タグ、HEAD からもたどれないものです。消えたわけではなく、reflog で見つけられます。
    3. レベルが確かめるのは最後の結果だけなので、ゴールに着けばどの道筋でもかまいません。短いほどスコアは上がります。
    4. コミットの ID を打つ必要はまずありません。コミットをタップするか、ブランチから ~ で数えてさかのぼりましょう。