Git初心者のための基本コマンド完全ガイド - 実際の操作で学ぶ実践的な使い方
Git初心者のための基本コマンド完全ガイド - 実際の操作で学ぶ実践的な使い方
Gitの概念を理解したら、次は実際にコマンドを使ってGitを操作してみましょう。この記事では、Gitを使い始めるために必要な基本コマンドを、実際の操作例とともに詳しく解説します。
まずは最低限必要な4つのコマンド(init、add、commit、status)から始めて、段階的に操作に慣れていきましょう。各コマンドの目的と使用場面を理解することで、Gitを効果的に活用できるようになります。
Gitの準備 - 初期設定
Gitのインストール確認
Gitを使い始める前に、まずは正しくインストールされているかを確認しましょう。ターミナル(コマンドプロンプト)で以下のコマンドを実行します。
git --version
このコマンドを実行すると、インストールされているGitのバージョンが表示されます。例えば「git version 2.39.0」のような表示が出れば、Gitが正常にインストールされています。もし「command not found」などのエラーメッセージが表示された場合は、Gitのインストールが必要です。
ユーザー情報の設定
Gitを初めて使用する際は、コミット時に記録される作成者情報を設定する必要があります。この設定は一度行えば、その後のすべてのプロジェクトで自動的に適用されます。
git config --global user.name "あなたの名前"
git config --global user.email "your-email@example.com"
ここで設定した名前とメールアドレスは、あなたが行うすべてのコミットに記録されます。チーム開発では、誰が変更を行ったかを識別するために使用されるため、正確な情報を入力することが重要です。メールアドレスは、後でGitHubなどのサービスと連携する際にも使用されます。
設定が正しく行われたかを確認するには、以下のコマンドを使用します。
git config --global --list
このコマンドで、設定されたユーザー名とメールアドレスを含む、すべてのグローバル設定を確認できます。
git init - リポジトリの初期化
git initの役割と重要性
git initは、新しいGitリポジトリを作成するための最初のコマンドです。このコマンドを実行することで、通常のフォルダがGitで管理されるプロジェクトフォルダに変わります。
プロジェクトを開始する際、まずはプロジェクトフォルダを作成し、そのフォルダ内でGitリポジトリを初期化することから始まります。これにより、そのフォルダ内で行われるすべての変更をGitで追跡できるようになります。
実際の操作手順
新しいプロジェクトを開始する場合の典型的な流れを見てみましょう。
mkdir my-first-project
cd my-first-project
git init
最初のmkdirコマンドで「my-first-project」という名前の新しいフォルダを作成します。次にcdコマンドでそのフォルダに移動し、最後にgit initコマンドでGitリポジトリを初期化します。
git initを実行すると、「Initialized empty Git repository in /path/to/my-first-project/.git/」のようなメッセージが表示されます。これは、空のGitリポジトリが正常に作成されたことを意味します。
.gitフォルダの役割
git initを実行すると、プロジェクトフォルダ内に.gitという隠しフォルダが作成されます。このフォルダにはGitが管理するすべての情報が保存されており、リポジトリの心臓部とも言える重要な部分です。
.gitフォルダには以下のような情報が含まれています:
- コミット履歴
- ブランチ情報
- 設定ファイル
- ステージングエリアの内容
通常、この.gitフォルダの中身を直接編集することはありませんが、Gitのすべての機能はこのフォルダの内容に基づいて動作しています。
git status - 状態の確認
git statusの重要性
git statusは、現在のリポジトリの状態を確認するためのコマンドです。「いま何が変更されているのか」「どのファイルがコミット待ちなのか」といった情報を一目で把握できるため、Gitを使う上で最も頻繁に使用するコマンドの一つです。
作業中は定期的にgit statusを実行して、現在の状況を確認する習慣をつけることが重要です。これにより、意図しない変更や忘れているファイルを発見できます。
実際の使用例
新しく作成したリポジトリでgit statusを実行してみましょう。
git status
初期状態では、以下のような表示が出ます:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
この表示は、現在「main」ブランチにいること、まだコミットが存在しないこと、追跡対象のファイルが存在しないことを示しています。
ファイル作成後のstatus
実際にファイルを作成してから、再度git statusを実行してみましょう。
echo "Hello, Git!" > README.md
git status
echoコマンドでREADME.mdファイルを作成し、その中に「Hello, Git!」という内容を書き込みます。その後git statusを実行すると、以下のような表示になります:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
この表示から、README.mdファイルが「Untracked files」(追跡されていないファイル)として認識されていることが分かります。Gitは新しく作成されたファイルを自動的には追跡せず、明示的に追跡対象として登録する必要があります。
statusメッセージの読み方
git statusの出力には、ファイルの状態に応じて異なる色や表示が使われます:
| 状態 | 説明 | 次のアクション |
|---|---|---|
| Untracked | Gitが追跡していない新規ファイル | git addで追跡開始 |
| Modified | 追跡中のファイルが変更された | git addでステージング |
| Staged | コミット待ちの状態 | git commitでコミット |
| Deleted | ファイルが削除された | git addで削除を記録 |
これらの状態を理解することで、次に行うべき操作が明確になります。
git add - ステージングエリアへの追加
git addの目的と仕組み
git addは、変更されたファイルをステージングエリア(コミットの準備領域)に追加するコマンドです。Gitでは、変更したファイルが自動的にコミットされることはなく、明示的に「このファイルの変更をコミットに含める」という指示を出す必要があります。
この仕組みにより、多くのファイルを変更した場合でも、関連する変更だけを選択的にコミットすることができます。例えば、バグ修正と新機能の開発を同時に行っていた場合、それぞれを別々のコミットとして記録することが可能です。
基本的な使用方法
先ほど作成したREADME.mdファイルをステージングエリアに追加してみましょう。
git add README.md
このコマンドを実行した後、git statusで状態を確認してみます:
git status
すると、以下のような表示に変わります:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
README.mdファイルが「Changes to be committed」(コミット予定の変更)として表示されています。これは、ファイルがステージングエリアに正常に追加されたことを意味します。
複数ファイルの追加
複数のファイルを同時にステージングエリアに追加することも可能です。まず、いくつかファイルを作成してみましょう。
echo "print('Hello, Python!')" > main.py
echo "/* Hello, CSS! */" > style.css
この状態でgit statusを実行すると、複数のUntracked filesが表示されます。これらを一つずつ追加することもできますが、より効率的な方法もあります:
# 個別に追加
git add main.py
git add style.css
# または一度に複数追加
git add main.py style.css
# またはすべてのファイルを追加
git add .
git add .コマンドは、現在のディレクトリ内のすべての変更されたファイルをステージングエリアに追加します。非常に便利ですが、意図しないファイルも含まれる可能性があるため、使用前にgit statusで確認することが重要です。
ステージングの取り消し
間違ってファイルをステージングしてしまった場合、以下のコマンドで取り消すことができます:
git rm --cached filename
このコマンドは、ファイルをステージングエリアから削除しますが、ワーキングディレクトリのファイル自体は削除されません。ファイルは再びUntracked状態に戻ります。
git commit - 変更の確定
git commitの意味と重要性
git commitは、ステージングエリアに追加された変更を正式にリポジトリの履歴として記録するコマンドです。コミットによって作成される「スナップショット」は、プロジェクトの特定の時点での状態を完全に記録します。
コミットは後から参照、比較、復元が可能な永続的な記録となるため、意味のある単位で適切にコミットを作成することが重要です。一つのコミットには、関連する変更のみを含めるという原則を守ることで、後の履歴確認や問題解決が格段に楽になります。
基本的なコミット方法
ステージングされたファイルをコミットしてみましょう。コミットには、変更内容を説明するメッセージを付ける必要があります。
git commit -m "初回コミット: READMEファイルを追加"
-mオプションの後に続く文字列がコミットメッセージとなります。このメッセージは、後で履歴を確認する際に変更内容を理解するための重要な情報となります。
コミットが成功すると、以下のような表示が出ます:
[main (root-commit) a1b2c3d] 初回コミット: READMEファイルを追加
1 file changed, 1 insertion(+)
create mode 100644 README.md
この表示から、以下の情報が読み取れます:
mainブランチでコミットが作成された(root-commit)は最初のコミットであることを示すa1b2c3dはコミットのハッシュ値(実際はより長い文字列の短縮版)- 1つのファイルが変更され、1行が追加された
良いコミットメッセージの書き方
コミットメッセージは、将来の自分や他の開発者が変更内容を理解するための重要な情報です。以下のガイドラインに従って書くことをお勧めします:
1. 簡潔で具体的な内容
# 良い例
git commit -m "ユーザー登録フォームのバリデーション機能を追加"
# 悪い例
git commit -m "いろいろ修正"
2. 動詞で始める
# 良い例
git commit -m "データベース接続エラーのハンドリングを改善"
git commit -m "ログイン画面のレスポンシブデザインを実装"
# 悪い例
git commit -m "バグ"
git commit -m "変更"
3. 50文字以内で要点をまとめる 長い説明が必要な場合は、1行目に要約、空行を挟んで詳細説明を書くことができます:
git commit -m "パフォーマンス最適化: データベースクエリを改善
- N+1問題を解決するためのeager loadingを実装
- 重複するクエリをキャッシュする機能を追加
- レスポンス時間が平均40%改善"
コミット後の確認
コミットが完了した後、git statusとgit logでリポジトリの状態を確認してみましょう。
git status
コミット後のgit statusは以下のようになります:
On branch main
nothing to commit, working tree clean
「working tree clean」は、すべての変更がコミットされており、新しい変更がないことを示しています。
履歴を確認するにはgit logコマンドを使用します:
git log
これにより、以下のような詳細なコミット情報が表示されます:
commit a1b2c3d4e5f6789012345678901234567890abcd
Author: あなたの名前 <your-email@example.com>
Date: Fri Jul 5 10:30:00 2025 +0900
初回コミット: READMEファイルを追加
より詳細なコミット情報の確認
コミットの詳細な変更内容を確認したい場合は、git showコマンドを使用します:
git show
このコマンドにより、最新のコミットの詳細情報と、実際に変更された内容(diff)が表示されます。どの行が追加・削除・変更されたかを具体的に確認できるため、後で変更内容を振り返る際に非常に有用です。
実践的なワークフロー例
日常的な開発サイクル
実際の開発では、以下のようなサイクルを繰り返すことになります:
1. 現在の状態を確認
git status
2. ファイルを編集・作成
# エディタでファイルを編集
echo "新しい機能を追加" >> README.md
3. 変更内容を確認
git status
4. ステージングエリアに追加
git add README.md
5. コミットを作成
git commit -m "READMEに新機能の説明を追加"
6. 結果を確認
git status
git log --oneline
git log --onelineは、コミット履歴を1行ずつ簡潔に表示するオプションです。長期間の開発で多くのコミットが蓄積された際に、全体の流れを把握するのに役立ちます。
複数の変更を含む場合の戦略
一度に複数のファイルを変更した場合、関連する変更をグループ化してコミットすることが重要です:
# 複数ファイルを変更
echo "function calculateSum(a, b) { return a + b; }" > math.js
echo "body { font-family: Arial; }" > style.css
echo "バグ修正の内容" >> README.md
# 状態確認
git status
# 関連する変更をグループ化
git add math.js
git commit -m "数学関数ライブラリを追加"
git add style.css
git commit -m "基本的なCSSスタイルを追加"
git add README.md
git commit -m "バグ修正の情報をREADMEに追記"
このように機能単位でコミットを分けることで、後で特定の変更を探したり、問題のある変更を特定したりする際に非常に役立ちます。
よくある間違いとその対処法
間違いその1: コミット前にaddを忘れる
# ファイルを変更
echo "変更内容" > file.txt
# addを忘れてcommitしようとする
git commit -m "ファイルを変更"
# → "nothing to commit, working tree clean" エラー
# 正しい手順
git add file.txt
git commit -m "ファイルを変更"
間違いその2: 意図しないファイルをaddしてしまう
# 間違って一時ファイルもaddしてしまった
git add .
git status
# → 一時ファイルやログファイルもstaged状態
# 特定のファイルのみunstage
git rm --cached temp_file.log
# または全てをunstage
git reset
間違いその3: コミットメッセージを間違える
最新のコミットのメッセージを修正したい場合:
git commit --amend -m "正しいコミットメッセージ"
ただし、このコマンドは最新のコミットを書き換えるため、他の人と共有したコミットには使用しないよう注意が必要です。
効率的なGit使用のためのヒント
コマンドエイリアスの設定
頻繁に使用するコマンドにはエイリアス(短縮名)を設定することで、作業効率を向上させることができます:
git config --global alias.st status
git config --global alias.co commit
git config --global alias.br branch
git config --global alias.hist "log --oneline --graph"
これらの設定により、git statusをgit stで実行できるようになります。
.gitignoreファイルの活用
一時ファイルやビルド生成物など、Gitで追跡したくないファイルがある場合は、.gitignoreファイルを作成して指定できます:
echo "*.log" > .gitignore
echo "temp/" >> .gitignore
git add .gitignore
git commit -m ".gitignoreファイルを追加"
これにより、指定したパターンに一致するファイルはgit add .の対象から自動的に除外されます。
まとめ
この記事では、Gitの基本的な4つのコマンド(init、status、add、commit)について詳しく解説しました。これらは日常的なGit操作の土台となる重要なコマンドです。
重要なポイントの確認
git initでリポジトリを初期化し、Gitによる管理を開始git statusで現在の状態を定期的に確認する習慣をつけるgit addで意図した変更のみをステージングエリアに追加git commitで意味のある単位で変更を履歴として記録
実践のための次のステップ
- 実際に簡単なプロジェクトを作成してこれらのコマンドを試す
- 意味のあるコミットメッセージを書く練習をする
- 定期的な
git statusの確認を習慣化する - 複数の変更を適切にグループ化してコミットする練習をする
これらの基本コマンドをマスターすることで、個人プロジェクトでの効率的なバージョン管理が可能になります。次のステップとして、リモートリポジトリとの連携やブランチ機能の学習に進むことで、より高度なGitの活用方法を身につけることができるでしょう。
継続的な練習を通じて、これらのコマンドを自然に使いこなせるようになれば、プログラミング学習や開発作業の効率が大幅に向上します。