このレッスンでやること
Git は、フォルダの履歴を残すしくみです。リポジトリは、その履歴を入れておく場所です。コミットするたびに、何が変わったか、だれが変えたか、なぜ変えたかが記録されます。Gitea、GitHub、GitLab のようなサーバーは、その履歴のコピーを預かり、ほかの人も見たり書き足したりできるようにします。
このレッスンでは、自分用の Gitea サーバーにリポジトリを作ります。次に、自分のパソコンにフォルダを作ってファイルを 1 つ入れ、コミットして、サーバーにプッシュ(送信)します。
始める前に
メモ
このレッスンの上にあるバーのラボを起動を押し、「実行中」と出るまで待ちます。下の実行ボタンは、それぞれのコマンドをラボのターミナルに順番に入力します。すべて同じセッションで動きます。様子を見たり、自分でコマンドを打ったりしたいときは、バーのターミナルを開く(新しいタブ)を押します。
1. Gitea でリポジトリを作る
ラボのバーにある Gitea を押すと、新しいタブで開きます。次の順に進めます。
- 右上の Sign In(サインイン)を押し、ユーザー名
student、パスワードstudentでサインインします。 - 右上の + を押し、New Repository(新しいリポジトリ)を選びます。
- 名前を
my-first-repoにします。Initialize Repository のチェックは入れません。空の状態で作るためです。 - 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 をもう一度実行して、フォルダに戻ってください。