Git プレイグラウンド
コードスニペットを書いて、実行して、共有できます - セットアップ不要。
git log --oneline --graph --allこのステップ後のコミット
- ea85bd9 Merge branch 'feature' (HEAD -> main) <- f5363c6, 47b6cfb
- 47b6cfb Work on feature (feature) <- b2134da
- f5363c6 Hotfix on main <- b2134da
- b2134da Add app.txt
- 作業ツリーはクリーンです
実行するたびにスクリプト全体を再生し、各行の後でリポジトリのスナップショットを取ります。ステップをクリックすると、その時点のグラフが表示されます。
よく使う Git コマンドを試す
この端末では Git も動きます。用意されたワークフローをプロンプトに読み込み、「実行」を押して各コマンドの動作を確認し、理解したいコマンドの完全なガイドを開きましょう。
git initecho "hello" > app.txtgit add app.txtgit commit -m "Add app.txt"git checkout -b featureecho "new feature" >> app.txtgit commit -am "Work on feature"git checkout -git merge featuregit log --oneline --graph
git initecho "v1" > notes.txtgit add notes.txtgit commit -m "Add notes.txt"echo "v2" >> notes.txtgit commit -am "Oops, wrong message"git reset --soft HEAD~1git statusgit commit -m "Update notes.txt"git log --oneline
コミットグラフがリアルタイムで動くオンライン Git プレイグラウンド
JavaScript による模倣ではなく、隔離された Linux ターミナルで本物の git を動かす無料の Git プレイグラウンドです。左側にコマンドを入力し - git init、git add、git commit、git branch、git merge、git rebase、git reset - 実行を押すと、右側のリポジトリパネルがスクリプトの 1 行ごとにコミットグラフ、ブランチ、HEAD、ワークツリーを描き直します。Git をオンラインで練習し、各コマンドが何をしたのかを実際に目で確かめる最速の方法です。
実行のたびにスクリプト全体が空のフォルダから再生され、各ステートメントの後にリポジトリのスナップショットが記録されます。だから任意のステップをクリックすれば、その瞬間のグラフをそのまま見られます。git reset が置き去りにしたコミットも薄く表示されたまま残るので、取り消しが何を取り消したのかが分かります。インストール不要、アカウント不要、あなたのリポジトリには一切触れません。
この Git プレイグラウンドが違う理由
- 本物の Git、本物の出力: サンドボックスは Linux 上で本物の
gitバイナリを実行するため、エラーメッセージもgit log --graphもgit statusもフラグも、手元のマシンと同じように動きます。作者がモデル化したコマンドしか知らない Git シミュレーターとは違います。 意図的な違いが 1 つだけあります。作者情報とコミット日時は固定されているため、ハッシュは実行のたびに同じになります。 - 1 行ごとに更新されるコミットグラフ: ブランチはレーン、マージは曲線、
HEADと各 ref はコミット上のラベルとして描かれ、さらにgit statusから読み取ったステージ済み・変更済み・追跡外・コンフリクト中のファイルも表示されます。ステップをクリックすればセッションの履歴を行き来できます。 - みんながよく検索するコマンドを練習: コミットの取り消し、コミットの squash、main への rebase、cherry-pick、stash、マージコンフリクトの解決、安全な force-push。下にある既成のワークフローを読み込むか、Git コマンドリファレンスの任意のページで「ライブで試す」を押してください。
- ネットワークなしでリモートを練習: ローカルの bare リポジトリを作り、
originとして追加して、git push、git fetch、git pull、git cloneを試せます。グラフにはorigin/mainがmainの隣で動く様子が出ます。 - 決定的な実行: 日時と作者情報が固定されているので、同じスクリプトからは常に同じコミットハッシュが得られます。スクリプトを友達に共有すれば、二人とも同じグラフを見られます。
Git プレイグラウンドで試してみること
- ブランチとマージ:
git checkout -b featureでブランチを切ってコミットし、mainに戻ってそこでもコミットしてからgit merge featureを実行し、マージコミットが 2 本のレーンをつなぐ様子を見てみましょう。 - 安全に取り消す: 後悔するコミットをしてから
git reset --soft HEAD~1を実行し、コミットがグラフから薄れていく一方で変更がステージ済みファイルとして戻ってくるのを確認します。続けてgit revertも試して比べてみてください。 - rebase と merge の比較: 同じ 2 ブランチの履歴を 2 回作り、一方を
git merge、もう一方をgit rebase mainで仕上げて、2 つのグラフの形を並べて比べます。 - わざとマージコンフリクトを起こす: 2 つのブランチで同じ行を変更してマージし、ファイルがコンフリクト行に現れるのを見ます。修正して
git add、git commitを実行すれば、コンフリクトが解消されます。
Git プレイグラウンド FAQ
この Git プレイグラウンドは無料ですか?
これは本物の Git ですか、それともシミュレーションですか?
git バイナリでスクリプトが実行されるため、コマンド、フラグ、出力、エラーメッセージはローカルで見えるものと一致します。意図的に追加しているものが 2 つあります。デフォルトの作者情報 (ローカルと同じように、あなた自身の git config user.name で上書きできます) と、固定されたコミット日時です。これによりコミットハッシュが毎回同じになります。実行の途中で入力を求めることはできないので、git rebase -i のような対話的なコマンドにはスクリプトで指定したエディターが必要です - 例で方法を紹介しています。コミットグラフはどう動いていますか?
HEAD、stash 一覧、git status を記録します。ページはそのスナップショットからグラフを描きます。ブランチごとに 1 レーン、マージは曲線、各 ref はラベルです。ステップ番号をクリックすると、その行の直後のリポジトリの状態を見られます。 非常に長いセッションでは、それ以前のプロンプトは最後の状態だけが記録され、ステップの帯には実際に記録された状態だけが表示されます。ここでブランチ、マージ、rebase を練習できますか?
git push、pull、fetch、clone は使えますか?
git clone https://… はインターネットに到達できません。サブフォルダに bare リポジトリを作り (git init --bare remote.git)、origin として追加すれば、そこに push、fetch、pull、clone できます。リモート追跡ブランチは GitHub のときと同じようにグラフに現れます。作業は実行のあいだ保持されますか?
オンライン Linux ターミナルとは何が違いますか?
Git をゼロから教えるコースはありますか?
git init からブランチ、マージ、rebase、リモートまで、採点付きの演習で進みます。また Git コマンドリファレンスの各コマンドページには「ライブで試す」ボタンがあり、実行できるサンプル付きでこのプレイグラウンドが開きます。