ファイルとステージングエリアの操作

GitGitBeginner
今すぐ練習

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

はじめに

お帰りなさい、未来を旅する夢を持つ方!さて、ここではGitのスキルを向上させ、ステージングエリアの魅力的な世界を探検しましょう。

この実験では、Gitのファイル管理機能についてさらに深く掘り下げます。プロジェクトからファイルを追加および削除する方法、追跡したくないファイルを無視する方法、コミットする前の変更を表示する方法、間違えた場合でも変更を元に戻す方法を学びます。これらのスキルは、あなたのタイムマシンをアップグレードするようなものです - プロジェクトのタイムラインを辿る際に、より多くの制御と柔軟性を与えます。

この実験が終わるとき、Gitのステージングエリアと、それがどのように組織的で意味のあるコミットを作成するのに役立つかを、より深く理解しているでしょう。では、ターミナルを起動して、この刺激的な旅に出ましょう!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/SetupandConfigGroup -.-> git/git("Show Version") git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/diff("Compare Changes") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/git -.-> lab-387457{{"ファイルとステージングエリアの操作"}} git/init -.-> lab-387457{{"ファイルとステージングエリアの操作"}} git/add -.-> lab-387457{{"ファイルとステージングエリアの操作"}} git/status -.-> lab-387457{{"ファイルとステージングエリアの操作"}} git/diff -.-> lab-387457{{"ファイルとステージングエリアの操作"}} git/restore -.-> lab-387457{{"ファイルとステージングエリアの操作"}} end

作業環境のセットアップ

この実験用の新しいディレクトリを作成して始めましょう。ターミナルを開き、次のコマンドを入力します。

cd ~/project
mkdir git-staging-lab
cd git-staging-lab
git init

これらのコマンドは、git-staging-lab という名前の新しいディレクトリを作成し、その中に移動し、新しいGitリポジトリを初期化します。

次に、作業するための簡単なPythonスクリプトを作成しましょう。

echo "print('Hello, Git!')" > hello.py

このコマンドは、単純なPythonのprint文を含む hello.py という名前のファイルを作成します。

ステージングエリアへのファイル追加

さて、hello.py ファイルができたので、これをステージングエリアに追加しましょう。ステージングエリアは、次のコミットに含めたいすべての変更を集める準備ゾーンのようなものです。

次のコマンドを実行します。

git add hello.py

このコマンドは、Gitに hello.py ファイルの追跡を開始し、次のコミットに含めるように指示します。

次に、リポジトリの状態を確認しましょう。

git status

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

On branch master

No commits yet

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

この出力は、hello.py が現在ステージングエリアにあり、コミット準備ができていることを示しています。

なぜステージングエリアが必要なのでしょうか。旅行に荷造りをしていると想像してみてください。ステージングエリアは、あなたのスーツケースのようなものです。あなたはそこに品物(変更)を追加したり、考えが変われば品物を取り除いたりすることができます。スーツケースの中身がすべて満足できたら、チャックアップ(コミット)します。これにより、各コミットに含まれる内容を慎重に選ぶことができ、プロジェクト履歴をより組織的で意味のあるものにすることができます。

#.gitignore を使ったファイルの無視

時々、一時ファイルや機密情報など、Gitが追跡したくないファイルがあります。Gitは、.gitignore と呼ばれる特別なファイルを使って、これらのファイルを無視することができます。

.gitignore ファイルを作成しましょう。

echo "*.log" > .gitignore

このコマンドは、.log 拡張子を持つ任意のファイルをGitに無視させるように指示する .gitignore ファイルを作成します。

次に、.gitignore をテストするためにログファイルを作成しましょう。

echo "This is a log file" > debug.log

リポジトリの状態を確認します。

git status

出力に debug.log がリストされていないことがわかりますが、.gitignore はリストされています。

On branch master

No commits yet

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

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

.gitignore ファイルは非常に強力です。特定のファイルや、ディレクトリ全体を無視することができますし、特定の基準に一致するファイルを無視するためにパターンマッチングを使うこともできます。これは、ビルド生成物、キャッシュファイル、または環境固有の設定ファイルなど、Gitリポジトリの一部に含めるべきでないものがある現実世界のプロジェクトで非常に便利です。

変更を追加してコミットしましょう。

git add.gitignore
git commit -m "Initial commit with hello.py and.gitignore"

git diff を使った変更の確認

プロジェクトが成長するにつれて、コミットする前に変更を確認したい場合がよくあります。Gitはこのために強力なコマンドを提供しています。git diff です。

hello.py ファイルを変更しましょう。

echo "print('Hello, Git! Welcome to the staging area.')" > hello.py

次に、変更内容を確認するために git diff を使いましょう。

git diff

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

diff --git a/hello.py b/hello.py
index ed51d3f..1385fe3 100644
--- a/hello.py
+++ b/hello.py
@@ -1 +1 @@
-print('Hello, Git!')
+print('Hello, Git! Welcome to the staging area.')

この出力は、ファイルにどのような変更が加えられたかを正確に示しています。- の行は削除された部分を、+ の行は追加された部分を示しています。

git diff はタイムマシンのログのようなものです。実際に行った変更を確認できるようにしてくれます。これは、何をしたかを思い出したいときや、コミットする前に変更を確認するときに非常に便利です。git diff --staged はこのコマンドのもう一つの便利なバリアントです。これは、ステージングされているがまだコミットされていない変更を表示します。コミットする前に変更を確認したいときに役立ちます。

git diff の表示を終了するには q を押します。

ステージング解除

時々、ファイルをステージングエリアに追加した後に考えが変わることがあります。Gitは、簡単にステージング解除することができます。

まず、hello.py に対する変更をステージングしましょう。

git add hello.py

次に、考えが変わり、次のコミットにこれらの変更を含めたくないとしましょう。git restore コマンドを使って、ファイルのステージングを解除することができます。

git restore --staged hello.py

状態を確認しましょう。

git status

hello.py が、「コミットのためにステージングされていない変更」の下に、「コミットするための変更」の代わりに表示されているはずです。

ステージングエリアにファイルを出入りさせるこの機能により、コミットに対して細かいコントロールができます。実際に旅行に出る前に、好きなだけスーツケースを詰め直したり、開けたりできるようなものです。

まとめ

おめでとうございます、Gitエクスプローラー!あなたは今、バージョン管理スキルを一段と高めました。この実験で学んだことを振り返りましょう。

  1. git add を使ってファイルをステージングエリアに追加する方法
  2. .gitignore を使って追跡したくないファイルを無視する方法
  3. git diff を使ってコミットする前にファイルの変更を確認する方法
  4. git restore --staged を使ってステージング解除する方法

これらのスキルは、あなたのGitワークフローをはるかにコントロールできるようにします。特に、ステージングエリアは、含める変更を慎重に選ぶことで、より意味のあるコミットを作成できる強力な機能です。

これらのスキルが重要な理由は次の通りです。

  1. 選択的なコミット:ステージングエリアを使うことで、一部の変更のみをコミットでき、より小さく、集中したコミットを作成できます。
  2. ファイルの無視.gitignore は、バージョン管理対象外のファイルを除外することで、リポジトリをクリーンに保つのに役立ちます。
  3. 変更の確認git diff を使うことで、コミットする前に変更を再度確認でき、早期にエラーを見つけることができます。
  4. 柔軟性:ステージング解除できる機能により、考えが変わっても自由に対応でき、Gitを使いにくく感じることが少なくなります。

Gitの旅を続けるにつれて、これらのスキルは非常に貴重です。これらは、より高度なGitワークフローの基礎を形成し、複雑なプロジェクトを簡単に管理できるようにします。

覚えておいてください、Gitを習熟するには練習が必要です。実験して間違えることを恐れないでください。それが私たちが学ぶ方法です!探求心を保ち、コミットを続け、時間の経過とともにあなたのプロジェクトが進化するのを見届けましょう。

あなたの次のGitの冒険はすぐそこにあります。好奇心を保ち、楽しいコーディングを!