あなたの最初の Git 実験

GitGitBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Git の世界への最初の刺激的な旅にようこそ! 過去に戻って作業のミスを修正したいと思ったことがある場合、またはプロジェクトの変更を追跡するのに苦労したことがある場合、大いに楽しむことになります。 Git はコードやドキュメントのタイムマシンのようなもので、この実験が終わるときには、それをコントロールする力を手に入れるでしょう!

もしこれまでに Git を聞いたことがない場合でも心配しないでください。 最初から始めて、各ステップを案内します。 この実験が終わるときには、Git リポジトリを作成し、変更を追跡し、コミットを行う方法を理解しています。 これらは、世界中の開発者が毎日素晴らしいソフトウェアを作成するために使用する基本的なスキルです。 冒険を始めましょう!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills linux/echo -.-> lab-92739{{"あなたの最初の Git 実験"}} git/init -.-> lab-92739{{"あなたの最初の Git 実験"}} git/add -.-> lab-92739{{"あなたの最初の Git 実験"}} git/status -.-> lab-92739{{"あなたの最初の Git 実験"}} git/commit -.-> lab-92739{{"あなたの最初の Git 実験"}} linux/cat -.-> lab-92739{{"あなたの最初の Git 実験"}} git/log -.-> lab-92739{{"あなたの最初の Git 実験"}} end

あなたの秘密の実験を作成する

Git に入り込む前に、作業スペースを設定しましょう。 これは、あなたのすべての実験が行われる秘密の実験室を作成することに似ています。

Open your terminal

ターミナルを開きます (心配しないでください、見た目ほど怖くありません!) そしてこれらの魔法の言葉を入力します:

cd ~/project
mkdir my-time-machine
cd my-time-machine

これらの呪文それぞれが何をするか説明します:

  1. cd ~/project:これはあなたをプロジェクト フォルダに移動させます。
  2. mkdir my-time-machine:これは「my-time-machine」と呼ばれる新しいフォルダを作成します。
  3. cd my-time-machine:これはあなたを新しい秘密の実験室に移動させます。

おめでとうございます! あなたはついに最初の Git プロジェクト用のスペースを作成しました。 では、なぜこの特別なフォルダが必要なのでしょうか? まあ、コーディングの世界では、作業を整理することが重要です。 あなたのプロジェクトが成長するにつれて、それぞれに専用のスペースがあることが嬉しくなるでしょう。

あなたのタイムマシン(Git リポジトリ)を初期化する

これで秘密の実験室ができたので、タイムマシンを作りましょう! コーディングの世界では、このタイムマシンを「Git リポジトリ」と呼びます。

ターミナルにこのコマンドを入力します:

git init

このようなメッセージが表示されるはずです:

Initialized empty Git repository in /home/labex/project/my-time-machine/.git/

すごい! あなたはついに自分だけのタイムマシンを作成しました! では、なぜコードにタイムマシンが必要なのでしょうか?

物語を書いていると想像してみてください。 異なるエンディングを試したり、本当に好きだった段落を偶然削除したりするかもしれません。 Git がなければ、物語の異なるバージョンを手動で保存しなければならず、「story_final.txt」、「story_final_v2.txt」、「story_final_REALLY_FINAL.txt」のようなファイルができてしまいます。 似たようなことはありませんか?

Git はこの問題を解決します。 複数のファイルを作成することなく、作業の異なるバージョンを保存できます。 簡単に過去の任意のバージョンに戻ったり、異なるアイデアを試すための代替の時間軸(「ブランチ」と呼びます)を作成したりできます。 これが開発者が Git を愛する理由です。 作業を失う恐れなく、自由に実験できるからです。

あなたのタイムマシンの状態を確認する

これでタイムマシンができたので、何がわかるか見てみましょう。 Git では、これを git status コマンドで行います。 タイムマシンに「今何が起こっているの?」と尋ねるようなものです。

試してみましょう:

git status

このようなものが表示されるはずです:

On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

これは少し混乱するかもしれませんが、解説しましょう:

  • 「On branch master」:ブランチはタイムラインのようなものです。 「master」はあなたのプロジェクトのメイン タイムラインです。
  • 「No commits yet」:コミットはビデオゲームのセーブポイントのようなものです。 まだセーブポイントを作成していません。
  • 「nothing to commit」:まだファイルを作成していないため、Git に記録する変更はありません。

「なぜファイルを保存するだけでこれらすべてが必要なの?」と思うかもしれません。 素晴らしい質問です! 通常の保存とは異なり、Git は時間の経過とともにプロジェクトの複数のバージョンを保存できます。 これは、何かが悪くなった場合にいつでも以前のバージョンに戻れることを知っているので、自由に実験できることを意味します。 まるであなたのプロジェクト全体に無制限の「元に戻す」機能があるかのようです!

最初のファイルを作成する

さて、タイムマシンが追跡するものを作成しましょう。 まずは、ファイルに簡単なメッセージを書きましょう:

echo "Hello, Future Me" > message.txt

このコマンドは、中に「Hello, Future Me」というテキストがある message.txt という新しいファイルを作成します。

書いた内容を確認しましょう:

cat message.txt

このように表示されるはずです:

Hello, Future Me!

素晴らしい! 最初のファイルを作成しました。 では、ここに Git の魔法が入ります。 今、このファイルはあなたのコンピュータに存在しますが、Git はまだ追跡していません。 ノートを書いたようなものですが、まだタイムキャプセル(Git リポジトリ)に入れていません。

次の手順では、Git がこの新しいファイルにどのように反応するか、そしてどのように変更を追跡できるかを見ていきます。 ここが、通常のファイル保存と比較して Git が輝き始めるところです。 Git を使えば、どのような変更があったか、いつ変更があったか、そしてなぜ変更があったかを正確に把握できます。 大規模なプロジェクトを行っているときにこれがどれほど役立つか想像してみてください!

再度状態を確認する

ファイルを作成したので、タイムマシンに何が見えるか尋ねてみましょう。 再度 git status コマンドを実行します:

git status

今回は、少し異なるものが表示されるはずです:

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        message.txt

nothing added to commit but untracked files present (use "git add" to track)

ワクワク! Git が新しいファイルに気付きましたが、「追跡対象外」と表示されています。 これが Git の面白いところの 1 つです。 フォルダ内のすべてのファイルを自動的に追跡しません。 これにより、プロジェクト履歴に含める変更をコントロールできます。

「なぜ自動的にすべてを追跡しないの?」と思うかもしれません。 大規模なプロジェクトを行っていると想像してみてください。 個人的なメモや一時ファイルなど、追跡したくないファイルがあるかもしれません。 Git を使えば、追跡する重要なものを選ぶことができ、プロジェクト履歴をクリーンで意味のあるものに保つことができます。

次の手順では、Git にこのファイルを追跡するように伝えます。 ここが Git が超能力のように感じられるところです。 最初のタイムスタンプを作成する準備ができています!

最初のセーブポイントを準備する

さて、次のセーブポイント(Git の用語では「コミット」)に message.txt を含めたいと Git に伝えます。これを git add コマンドで行います:

git add message.txt

このコマンドは何も出力しませんが、Git に message.txt の追跡を開始するように伝えました。

変更があったかどうかを確認するために再度状態を確認しましょう:

git status

今回はこのように表示されるはずです:

On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt

見ての通り! Git が今やこのファイルを追跡しており、コミットの準備ができています。 追加してからコミットするというこの 2 段階のプロセスは、最初は少々複雑に見えるかもしれませんが、実際には Git の超能力の 1 つです。

タイムキャプセルを準備していると想像してみてください。 git add コマンドはキャプセルに入れるものを決めるのに似ており、次に行うコミットはキャプセルを実際に封印するのに似ています。 これにより、プロジェクト履歴の各セーブポイントに入れるものを慎重に選ぶことができます。

この機能は、大規模なプロジェクトを行っているときに非常に役立ちます。 10 個のファイルを変更した場合でも、そのうちの 3 つの変更のみをコミットしたい場合があります。 Git のステージング エリア(message.txt が現在ある場所)を使えば、まさにそれができます!

最初のセーブポイント(コミット)を作成する

さて、ワクワクする部分が来ます。最初のコミットを作成しましょう! コミットはタイムキャプセルを封印するようなものです。 すべての追跡対象ファイルの現在の状態を保存し、変更内容を説明するメッセージを追加します。

コミットを作成するコマンドはこちらです:

git commit -m "Send a message to the future"

このような出力が表示されるはずです:

[master (root-commit) a1b2c3d] Send a message to the future
 1 file changed, 1 insertion(+)
 create mode 100644 message.txt

おめでとうございます! 初めて Git コミットを作成しました。 公式に、いつでも戻れるようにプロジェクトの時点を保存しました。

これが Git がこれほど強力な理由です。 各コミットはその瞬間のプロジェクト全体のスナップショットです。 必要なだけ多くのこれらのスナップショットを作成できるため、プロジェクトの詳細な履歴が得られます。

学校のエッセイを書いていると想像してみてください。 通常の保存では、最新バージョンしかありません。 しかし Git を使えば、「初稿」、「結論追加」、「序文修正」などのセーブポイントを持つことができます。 必要に応じて、これらのいずれかのポイントに戻ることもできます!

タイムトラベルの履歴を表示する

最初のコミットを行ったので、プロジェクトの履歴を表示しましょう。これは git log コマンドで行うことができます:

git log

このような内容が表示されるはずです:

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Your Name <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

このログエントリは、いくつかの情報を示しています:

  • コミットの一意の識別子(文字と数字の長い文字列)
  • コミットを行った人
  • コミットが行われた日時
  • 私たちが書いたコミットメッセージ

このログは、プロジェクトのタイムラインのようなものです。 より多くのコミットを行うにつれて、それらがこのログに追加され、プロジェクトの完全な履歴が作成されます。 プロジェクトがどのように時間の経過とともに進化したかを理解したり、特定の変更がいつ行われたかを見つける必要があるときに、これは非常に便利です。

ログを終了してコマンドラインに戻るには q を押します。忘れないでください。Git の全画面表示を終了するには常に q を押せます。

グループプロジェクトで共同作業していると想像してみてください。 Git を使えば、誰がどの変更を行ったか、そしてなぜその変更を行ったかを確認できるため、チームとのコーディネートがはるかに容易になります。 これが、世界中の開発者によって Git が使用されている理由の 1 つです。コラボレーションがはるかに容易になるからです!

まとめ

おめでとうございます、タイムトラベラー! 初めての Git の冒険を終えました。学んだ素晴らしいことを振り返りましょう:

  1. git init を使って Git リポジトリ(あなたのタイムマシン)を作成する方法
  2. git status を使ってリポジトリの状態を確認する方法
  3. git add を使ってファイルを作成し、コミットの準備をする方法
  4. git commit を使ってコミット(時点でのセーブポイント)を作成する方法
  5. git log を使ってプロジェクトの履歴を表示する方法

「ただファイルを保存するためにこんな面倒を見る必要があるのか?」と思うかもしれません。素晴らしい質問です! Git がこれほど強力な理由はここにあります:

  1. 詳細な履歴:Git を使えば、プロジェクトの完全な履歴が得られます。何が変更されたか、いつ変更されたか、そしてなぜ変更されたかを確認できます。
  2. 実験:Git は自由に実験できるようにします。元の作業を失うことなく、プロジェクトの異なるバージョンを作成できます。
  3. コラボレーション:チームで作業する場合、Git は誰が何を変更したか、そしてなぜ変更したかを簡単に確認できるようにします。
  4. バックアップ:すべての Git リポジトリは、その履歴を含むプロジェクトの完全なバックアップです。

これらは、開発者が毎日素晴らしいソフトウェアを作成するために使う基本的なビルディングブロックです。あなたが旅を続けるにつれて、これらの基本を基にして、より複雑なプロジェクトを管理し、他の人とコラボレーションするようになります。

覚えておいてください。誰もが初心者から始まります。最も経験豊富な開発者でさえ、一度はあなたが今いる場所にいました。練習を続け、実験を続け、最も重要なことは、楽しんでください!

もし LabEx とその使い方についてもっと学びたい場合は、サポートセンター を訪問できます。または、LabEx についてもっと学ぶために ビデオ を見ることができます。

プログラミングとバージョン管理の世界へのあなたの旅は、今始まったばかりです。次の実験は、クリック 1 回です。さらに探求し、技術を磨きましょう! 新しい Git の超能力を使って、どんな素晴らしいプロジェクトを作成できるかわかりません!