
Gitバージョン管理の基本|コマンドとワークフローをわかりやすく解説
Gitの基本的な使い方とコマンドを初心者向けに解説。ブランチ・マージ・コンフリクト解消など実践的なワークフローとGitチートシートの活用法を紹介します。
Gitは現代のソフトウェア開発において欠かせないバージョン管理システムです。「コードの履歴を管理する」というシンプルな目的のもと、チーム開発から個人プロジェクトまで幅広く活用されています。
Gitとは何か、なぜ必要か
バージョン管理システム(VCS)の役割
- コードの変更履歴を記録して、任意の時点に戻れる
- 複数人が同じコードを同時に編集できる
- 変更の差分を確認できる
- 実験的な変更を安全に試せる(ブランチ機能)
Gitなしでのチーム開発は、「最終版_v3_本当の最終版2.docx」のようなファイル管理と同じ問題が起きます。
Git コマンドチートシートやりたい操作でGitコマンドを素早く検索・コピーGitの基本概念
リポジトリ(Repository)
プロジェクトのファイルとその変更履歴を格納する場所です。ローカルリポジトリ(自分のPC)とリモートリポジトリ(GitHub・GitLabなど)があります。
コミット(Commit)
ファイルの変更を「セーブポイント」として記録する操作です。コミットには変更内容の説明(コミットメッセージ)を添付します。
ブランチ(Branch)
メインのコードから独立した作業環境を作る機能です。新機能の開発・バグ修正などを安全に行えます。
マージ(Merge)
ブランチの変更をメインブランチに統合する操作です。
基本的なGitコマンド
初期設定
# Gitの初期設定git config --global user.name "あなたの名前"git config --global user.email "[email protected]"# 新しいリポジトリを初期化git init# 既存リポジトリのクローンgit clone https://github.com/user/repository.git
日常的な操作
# 変更状態を確認git status# 変更をステージングエリアに追加git add filename.js # 特定ファイルgit add . # すべての変更# コミットgit commit -m "コミットメッセージ(変更内容を説明)"# リモートに送信git push origin main# リモートから取得git pull origin main
ブランチ操作
# ブランチ一覧git branch# 新しいブランチを作成して切り替えgit checkout -b feature/new-feature# ブランチの切り替えgit checkout main# ブランチをマージgit merge feature/new-feature# ブランチを削除git branch -d feature/new-feature
Git コマンドチートシートやりたい操作でGitコマンドを素早く検索・コピー
実践的なワークフロー
Git Flow(チーム開発向け)
main(またはmaster):本番環境のコードdevelop:開発中の最新コードfeature/xxx:新機能の開発ブランチhotfix/xxx:緊急バグ修正ブランチrelease/xxx:リリース準備ブランチ
GitHub Flow(シンプルなワークフロー)
mainから機能ブランチを作成- ブランチで変更を加えてコミット
- プルリクエスト(PR)を作成
- コードレビューを経てmainにマージ
小〜中規模のプロジェクトでは、GitHubFlowの方がシンプルで管理しやすいです。
コンフリクトの解消
複数人が同じファイルの同じ箇所を変更した場合、マージ時にコンフリクト(競合)が発生します。
コンフリクトの表示
<<<<<<< HEAD
こちらは自分のブランチの変更です
=======
こちらは相手のブランチの変更です
>>>>>>> feature/other-branch
<<<<<<< HEAD から ======= が自分の変更、======= から >>>>>>> が相手の変更です。どちらを残すか(または両方を組み合わせるか)を手動で編集し、マーカーを削除してからコミットします。
よくある質問
Q: git revertとgit resetの違いは何ですか?
A: git revertは「元に戻したコミット」を新しいコミットとして追加し、履歴を保存します。git resetはコミット履歴自体を書き換えるため、共有リポジトリへのプッシュには注意が必要です。安全な取り消しにはgit revertが推奨されます。
Q: コミットメッセージはどう書けばいいですか?
A: 英語では「Add user authentication feature」のような動詞から始まる命令形、日本語では「ユーザー認証機能を追加」のような簡潔な説明が一般的です。Conventional Commits(feat:・fix:・docs:など)のプレフィックスを使うチームも多いです。
Q: .gitignoreには何を書くべきですか?
A: パスワード・APIキーなどの秘密情報(.env)、依存パッケージ(node_modules/)、ビルド成果物(dist/・build/)、OS固有ファイル(.DS_Store・Thumbs.db)を記載します。GitHubのgitignoreテンプレート集が参考になります。
まとめ
Gitの基本を習得することで、コード管理の安全性と開発効率が飛躍的に向上します。まずはadd・commit・pushの基本フローをマスターし、ブランチとマージを日常的に使いこなすことを目指しましょう。Gitチートシートで重要コマンドをいつでも参照できます。


