クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

Git の基本

レッスン全文をここで読めます。無料アカウントを作成すると、実際のラボで実践できます。

コンテナラボ読了目安 17分コマンド16個

このレッスンでやること

Git は、フォルダの履歴を残すしくみです。リポジトリは、その履歴を入れておく場所です。コミットするたびに、何が変わったか、だれが変えたか、なぜ変えたかが記録されます。Gitea、GitHub、GitLab のようなサーバーは、その履歴のコピーを預かり、ほかの人も見たり書き足したりできるようにします。

このレッスンでは、自分用の Gitea サーバーにリポジトリを作ります。次に、自分のパソコンにフォルダを作ってファイルを 1 つ入れ、コミットして、サーバーにプッシュ(送信)します。

始める前に

メモ

このレッスンの上にあるバーのラボを起動を押し、「実行中」と出るまで待ちます。下の実行ボタンは、それぞれのコマンドをラボのターミナルに順番に入力します。すべて同じセッションで動きます。様子を見たり、自分でコマンドを打ったりしたいときは、バーのターミナルを開く(新しいタブ)を押します。

1. Gitea でリポジトリを作る

ラボのバーにある Gitea を押すと、新しいタブで開きます。次の順に進めます。

  1. 右上の Sign In(サインイン)を押し、ユーザー名 student、パスワード student でサインインします。
  2. 右上の + を押し、New Repository(新しいリポジトリ)を選びます。
  3. 名前を my-first-repo にします。Initialize Repository のチェックは入れません。空の状態で作るためです。
  4. Create Repository(リポジトリを作成)を押します。

Gitea に空のリポジトリと、中身を入れるためのコマンドが表示されます。このレッスンの残りで、それを 1 つずつ行います。

2. Git に自分の名前を教える

コミットには必ず作成者が記録されます。Git は名前とメールアドレスを一度だけ聞きます。--global を付けると、このパソコンのすべてのリポジトリで使われます。2 つとも実行しましょう。

コマンド
git config --global user.name "Student"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
git config --global user.email "[email protected]"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

3. プロジェクトのフォルダを作る

mkdir は、ホームフォルダに my-first-repo という名前のフォルダを作ります。Gitea のリポジトリと同じ名前です。cd はそのフォルダの中に移動します。これ以降のコマンドは、すべてこのフォルダの中で実行します。

コマンド
mkdir -p ~/my-first-repo

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
cd ~/my-first-repo

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

4. フォルダをリポジトリにする

git init を実行すると、このフォルダに隠しフォルダ .git ができ、Git のリポジトリになります。履歴はここに保存されます。まだ何も記録されていません。master という名前について hint: で始まる行がいくつか出ることがありますが、問題ありません。ステップ 10 で扱います。

コマンド
git init

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

5. ファイルを作る

echo は 1 行の文字を書き出し、> はそれを新しいファイル hello.txt に入れます。cat はファイルの中身を表示します。

コマンド
echo "Hello, Git" > hello.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
cat hello.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

6. Git に今の状態を聞く

git status は、変わったところを一覧にします。hello.txt は untracked(未追跡)と出ます。Git には見えているけれど、まだ「このファイルを記録して」と頼まれていない、という意味です。

コマンド
git status

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

7. ファイルをステージする

git add は、ファイルをステージングエリアに入れます。次のコミットに入れる変更の一覧です。もう一度 git status を実行すると、hello.txt が "Changes to be committed"(コミット予定の変更)の下に出ます。

コマンド
git add hello.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
git status

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

8. コミットする

コミットは、ステージしたものをすべて、履歴の 1 つの段階として記録します。何をしたかを書いたメッセージも付きます。git log --oneline は、ここまでのコミットを一覧にします。今は 1 つだけで、短いコードとあなたのメッセージが表示されます。--no-pager を付けると一覧がそのまま出力されます。付けない git log だと専用の表示画面が開き、q を押して閉じる必要があります。

コマンド
git commit -m "Add hello.txt"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
git --no-pager log --oneline

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

9. Gitea とつなぐ

リモートは、リポジトリのもう 1 つのコピーです。ここでは、ステップ 1 で作ったものです。origin は、主になるリモートに付ける、みんなが使う名前です。git remote -v で、それがどこを指しているか確認できます。

コマンド
git remote add origin http://student:student@gitea:3000/student/my-first-repo.git

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コマンド
git remote -v

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

アドレスの中のパスワード

注意

上のアドレスには Gitea のアカウント名とパスワードが入っているので、Git は途中でパスワードを聞きません。これが安全なのは、自分だけが使える練習用サーバーのときだけです。本物のパスワードをアドレスに入れてはいけません。Git は必要なときに自分で聞いてくれます。GitHub のような本物のサーバーでは、パスワードの代わりにトークンが求められます。

10. ブランチ名を main にする

コミットはブランチの上に作られます。古いバージョンの Git は最初のブランチを master と呼びますが、今は Gitea や GitHub をはじめ、多くのサーバーが main を想定しています。git branch -M main を実行すると、もとの名前が何であっても main に変わり、名前がそろいます。

コマンド
git branch -M main

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

11. プッシュする

git push は、コミットをリモートに送ります。-u origin main を付けると、このブランチの送り先が origin だと覚えてくれます。次からは git push だけで送れます。

コマンド
git push -u origin main

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

12. Gitea で確かめる

Gitea のタブに戻り、student/my-first-repo を開きます(すでに開いていれば再読み込みします)。hello.txt があり、横にあなたのコミットメッセージが出ています。コミットの数を押すと、履歴が見られます。

自分でもう一度やってみよう

ヒント

バーのターミナルを開く(新しいタブ)を押します。echo "Second line" >> hello.txt で 2 行目を足します。> を 2 つ重ねると、置き換えではなく追加になります。続けて git add、git commit、git push を行い、Gitea で履歴が増えるのを確かめましょう。

ターミナルが再起動していたら、先にステップ 3 の cd をもう一度実行して、フォルダに戻ってください。

このラボのほかのレッスン

このラボとソースについて: Git と Gitea のラボ:自分専用の Git サーバーでクローン、コミット、プッシュを学ぶ

授業で教えていますか?これらのレッスンを生徒に割り当て、採点と生徒ごとのラボを使えます。