Gitスクール · FluxGit

手を動かしてGitを学ぶ

よくあるGitの問題を対話型リポジトリで解決しましょう。コマンドを試してグラフの変化を確認し、ガイドと動画で理解を深められます。

ブラウザで試す

レッスンを選ぶか、自由に操作してください。提案されたGitコマンドを実行して、リポジトリの変化を確認しましょう。

練習ではブラウザのメモリ上の仮想リポジトリを使います。手元のファイルにはアクセスせず、実際のリモートリポジトリにも接続しません。

決まった目標のない小さなリポジトリを自由に操作できます。対応するコマンドを試し、チームメンバーのプッシュによる変化も確認しましょう。

このシミュレーターはGitコマンドの一部に対応しています。未対応のコマンドを入力すると、制限の説明がターミナルに表示されます。

G9

間違ったブランチでコミットしてしまった

feature/discountsに入れるはずのコミットをmainに作成しました。まだプッシュしていません。

「Apply discounts」をfeature/discountsに移し、mainから取り除きます。

G4

最後のコミットを修正:メッセージと入れ忘れたファイル

最後のコミットのメッセージが「Add stylsheet」で、style.cssも入っていません。まだプッシュしていません。

style.cssと正しいメッセージ「Add stylesheet」を含むコミットに置き換え、プッシュします。

G5

プッシュ前と後でコミットを取り消す

不要なコミットがあります。1つは手元だけにあり、前のもう1つはすでにプッシュ済みです。

ローカルのコミットを取り消し、続いて共有履歴を書き換えずにプッシュ済みのコミットを取り消します。

G8a

git reset --hardを取り消す

git reset --hard HEAD~2を実行して、2つのコミットが消えてしまいました。

失われたコミットを見つけ、mainを元の位置に戻します。

G6

マージ競合を解決する

mainとfeature/titleがindex.htmlの同じ行を変更しました。

feature/titleをmainにマージし、選んだタイトルを残します。

G10

Detached HEAD:作業を残す

過去のコミットをチェックアウトして新しいコミットを作成したところ、Gitに「HEAD detached」と表示されました。

コミットをブランチに関連付け、参照を残します。

G11

自分のブランチとoriginが分岐した

自分がコミットしている間に、チームメンバーがプッシュしました。git statusは自分のブランチとorigin/mainが分岐したと表示しています。

相手のコミットを取り込み、その後に自分のコミットを適用してプッシュします。

G12

未完了の作業を残してブランチを切り替える

mainで変更の途中ですが、すぐにhotfixで修正する必要があります。

作業を一時保存し、hotfixで修正してから戻って作業を復元します。

G8b

削除したGitブランチを復元する

git branch -Dでfeature/searchを削除しました。他の誰も持っていないコミットが含まれていました。

feature/searchとそのコミットを復元します。

Gitスクール · G6

ブラウザで試す

mainとfeature/titleがindex.htmlの同じ行を変更しました。

目標: feature/titleをmainにマージし、選んだタイトルを残します。

練習ではブラウザのメモリ上の仮想リポジトリを使います。手元のファイルにはアクセスせず、実際のリモートリポジトリにも接続しません。

練習するコマンド

このシミュレーターはGitコマンドの一部に対応しています。未対応のコマンドを入力すると、制限の説明がターミナルに表示されます。

git merge feature/title
cat index.html
echo "<h1>Our Best Shop</h1>" > index.html
git add index.html
git commit --no-edit

FluxGitでの操作

  • マージ前にOperation Planが実際のブランチ間の競合を予測します。
  • 3方向エディターで両側と結果を確認し、解決済みにできます。考えが変わった場合はマージを取り消せます。
FluxGitをダウンロード Gitスクール
Gitでファイルの一部だけをコミットする

Gitでファイルの一部だけをコミットする

同じファイルにバグ修正とデバッグ出力がある場合、修正だけをステージできます。Gitのステージング領域、FluxGitのStage change、git add -pを解説します。

ガイドを読むチュートリアルを見る
Git worktree と submodule:何を、いつ使うか

Git worktree と submodule:何を、いつ使うか

worktree と submodule?それぞれ解決する問題が違います。worktree は同じリポジトリの2つ目の作業フォルダーです。submodule は別のリポジトリを特定のコミットに固定して、自分のリポジトリ内に組み込みます。

ガイドを読むチュートリアルを見る

FluxGitでの操作

よくあるGitの問題を対話型リポジトリで解決しましょう。コマンドを試してグラフの変化を確認し、ガイドと動画で理解を深められます。

FluxGitをダウンロード