TechHub

エンジニアの成長をサポートする技術情報サイト

← 記事一覧に戻る

Gitの基本的な使い方は?初心者向け完全ガイド

公開日: 2024年1月20日 著者: mogura
Gitの基本的な使い方は?初心者向け完全ガイド

疑問

Gitの基本的な使い方を学びたいのですが、どのようなコマンドや操作が必要なのでしょうか?バージョン管理の基本から、ブランチやマージまで一緒に学んでいきましょう。

導入

Gitは、ソフトウェア開発において最も広く使用されているバージョン管理システムです。コードの変更履歴を追跡し、複数の開発者が協力して作業できるようにする強力なツールです。

Gitを使いこなすことで、コードの変更を安全に管理し、過去のバージョンに戻ったり、複数の機能を並行して開発したりすることが可能になります。本記事では、Gitの基本的な概念から、実践的なコマンド、ブランチ戦略まで、段階的に解説していきます。

Gitのイメージ

解説

1. Gitとは何か


Gitは、分散型バージョン管理システムです。ファイルの変更履歴を記録し、いつでも過去の状態に戻すことができます。

Gitの主な特徴


- 分散型: 各開発者がローカルに完全な履歴を持つ
- 高速: ほとんどの操作がローカルで実行される
- ブランチ機能: 複数の開発ラインを並行して管理
- 統合性: データの整合性を保証

参考リンク: Git公式サイト

2. Gitの初期設定


Gitを使い始める前に、基本的な設定を行いましょう。

# ユーザー名とメールアドレスを設定
git config --global user.name "あなたの名前"
git config --global user.email "your.email@example.com"

# 設定を確認
git config --list


よく使う設定


# デフォルトのブランチ名をmainに設定
git config --global init.defaultBranch main

# カラー出力を有効化
git config --global color.ui auto

# エディタを設定(例:VS Code)
git config --global core.editor "code --wait"


3. リポジトリの作成と初期化


新しいリポジトリを作成する


# 新しいディレクトリでリポジトリを初期化
mkdir my-project
cd my-project
git init

# 既存のディレクトリでリポジトリを初期化
cd existing-project
git init


既存のリモートリポジトリをクローンする


# GitHubからリポジトリをクローン
git clone https://github.com/username/repository.git

# 特定のディレクトリ名でクローン
git clone https://github.com/username/repository.git my-folder


4. 基本的なGitのワークフロー


Gitの基本的なワークフローは以下の通りです。

1. 作業ディレクトリでファイルを編集
2. 変更をステージングエリアに追加 (git add)
3. 変更をコミット (git commit)
4. リモートリポジトリにプッシュ (git push)

ファイルの状態を確認する


# ファイルの状態を確認
git status

# 変更内容を確認
git diff

# ステージング済みの変更を確認
git diff --staged


5. ファイルの追加とコミット


ファイルをステージングエリアに追加


# 特定のファイルを追加
git add filename.txt

# すべての変更を追加
git add .

# 特定の拡張子のファイルを追加
git add *.js


コミットを作成する


# コミットメッセージを指定してコミット
git commit -m "初回コミット: プロジェクトのセットアップ"

# 詳細なコミットメッセージを編集
git commit

# 変更をステージングしてコミット(新規ファイルは除く)
git commit -am "機能追加: ユーザー認証機能"


良いコミットメッセージの書き方


# 良い例
git commit -m "機能追加: ログイン機能を実装"
git commit -m "バグ修正: メモリリークを解消"
git commit -m "リファクタリング: コードの可読性を向上"

# 悪い例
git commit -m "更新"
git commit -m "修正"
git commit -m "いろいろ変更"


Gitワークフローのイメージ

6. 履歴の確認


コミット履歴を確認する


# コミット履歴を表示
git log

# 1行で表示
git log --oneline

# グラフ形式で表示
git log --graph --oneline --all

# 特定のファイルの履歴を確認
git log filename.txt

# 変更内容も一緒に表示
git log -p


特定のコミットを確認する


# コミットの詳細を確認
git show <commit-hash>

# 短縮ハッシュで確認
git show abc1234


7. 変更の取り消し


作業ディレクトリの変更を取り消す


# ファイルの変更を取り消す(注意:未保存の変更が失われます)
git checkout -- filename.txt

# すべての変更を取り消す
git checkout -- .

# 新しい方法(Git 2.23以降)
git restore filename.txt
git restore .


ステージングを取り消す


# ステージングからファイルを削除
git reset HEAD filename.txt

# すべてのステージングを取り消す
git reset HEAD

# 新しい方法
git restore --staged filename.txt


コミットを取り消す


# 最後のコミットを取り消す(変更は保持)
git reset --soft HEAD~1

# 最後のコミットを取り消す(変更も取り消す)
git reset --hard HEAD~1

# 注意:既にプッシュしたコミットは取り消さないこと


8. ブランチの操作


ブランチは、メインのコードベースから分岐して、独立した開発ラインを作成する機能です。

ブランチの作成と切り替え


# 新しいブランチを作成
git branch feature-branch

# ブランチを作成して切り替え
git checkout -b feature-branch

# 新しい方法(Git 2.23以降)
git switch -c feature-branch

# ブランチの一覧を表示
git branch

# リモートブランチも含めて表示
git branch -a


ブランチの切り替え


# ブランチを切り替え
git checkout main
git switch main

# 前のブランチに戻る
git checkout -
git switch -


ブランチのマージ


# mainブランチに切り替え
git checkout main

# feature-branchをマージ
git merge feature-branch

# マージコミットを作成せずにマージ(fast-forward)
git merge --ff-only feature-branch


9. リモートリポジトリの操作


リモートリポジトリを追加する


# リモートリポジトリを追加
git remote add origin https://github.com/username/repository.git

# リモートリポジトリを確認
git remote -v

# リモートリポジトリのURLを変更
git remote set-url origin https://github.com/username/new-repository.git


プッシュとプル


# リモートリポジトリにプッシュ
git push origin main

# 初回プッシュ(上流ブランチを設定)
git push -u origin main

# リモートリポジトリから変更を取得
git pull origin main

# フェッチのみ(マージしない)
git fetch origin


10. よくある操作とトラブルシューティング


変更を一時的に保存する(stash)


# 変更を一時的に保存
git stash

# メッセージ付きで保存
git stash save "作業中の変更"

# 保存した変更を確認
git stash list

# 保存した変更を適用
git stash apply

# 保存した変更を適用して削除
git stash pop

# すべてのstashを削除
git stash clear


コンフリクトの解決


# マージ時にコンフリクトが発生した場合
# 1. コンフリクトファイルを編集
# 2. コンフリクトを解決
# 3. ファイルをステージング
git add conflicted-file.txt

# 4. マージを完了
git commit


ファイルをGitから削除する


# ファイルを削除してステージング
git rm filename.txt
git commit -m "ファイルを削除"

# ファイルは残してGitからだけ削除
git rm --cached filename.txt


11. ベストプラクティス


1. 小さなコミットを心がける: 1つのコミットに1つの変更
2. 意味のあるコミットメッセージ: 何を変更したか明確に
3. 定期的にコミット: 作業の区切りでコミット
4. ブランチを活用: 機能ごとにブランチを作成
5. プルを忘れずに: 作業前に最新の変更を取得
6. **.gitignoreを設定**: 不要なファイルを追跡しない

.gitignoreの例


# 依存関係
node_modules/
venv/

# ビルド成果物
*.class
*.exe
*.o

# IDE設定
.vscode/
.idea/

# OS固有ファイル
.DS_Store
Thumbs.db

# 環境変数
.env
.env.local


参考リンク: GitHub - gitignore

12. 実践的なワークフロー例


機能開発のワークフロー


# 1. 最新の変更を取得
git checkout main
git pull origin main

# 2. 新しいブランチを作成
git checkout -b feature/new-feature

# 3. コードを編集してコミット
git add .
git commit -m "機能追加: 新機能を実装"

# 4. リモートにプッシュ
git push -u origin feature/new-feature

# 5. プルリクエストを作成(GitHub上で)

# 6. マージ後、mainブランチに戻る
git checkout main
git pull origin main

# 7. 不要なブランチを削除
git branch -d feature/new-feature
git push origin --delete feature/new-feature


参考リンク: Git公式ドキュメント

まとめ

Gitは、ソフトウェア開発において不可欠なバージョン管理システムです。基本的なワークフローは、ファイルを編集→git addでステージング→git commitでコミット→git pushでリモートにプッシュという流れです。

ブランチを活用することで、複数の機能を並行して開発でき、安全にコードを管理できます。小さなコミットを心がけ、意味のあるコミットメッセージを書くことで、後から履歴を追跡しやすくなります。

実践的なプロジェクトで積極的にGitを使用し、日々の開発に組み込むことで、自然と使いこなせるようになります。

オブジェクト指向プログラミングとは?基本概念をわかりやすく解説 Pythonでファイルを読み書きする方法は?実践的なガイド