- Gitを使い始める前に知っておくべき基礎知識
- 1. Gitとは?その本質を理解する
- 2. Gitを使う環境を整える
- 3. 基本操作:ローカルリポジトリを作る
- 4. ファイル変更の履歴を扱う
- 5. ブランチで並行開発
- 6. リモートリポジトリ(GitHub, GitLab, Bitbucket など)
- 7. 変更の取り消しとリセット
- 8. 高度な使い方 – Rebase と Cherry‑Pick
- 9. Gitフローとブランチ戦略
- 10. コミットメッセージの書き方
- 11. CI/CD と Git の連携
- 12. Gitの保守とパフォーマンス
- 13. よくある質問とトラブルシューティング
- 14. まとめ – Git を使いこなす鍵
- 関連記事
Gitを使い始める前に知っておくべき基礎知識
ソフトウェア開発においてコードを安定的に管理し、複数人で協力作業を行うためには「バージョン管理」が欠かせません。
Gitはその代表的なツールであり、世界中のエンジニアが標準として採用しています。
初心者が直面する「コマンドラインに不慣れ」「変更点を追跡したい」「リモートリポジトリへアップロードしたい」といった疑問を一つずつ解消しながら、Gitの全貌を徹底解説します。
1. Gitとは?その本質を理解する
1‑1. 分散型バージョン管理システム
Gitは「分散型」(distributed)であるという特徴を持つバージョン管理システムです。
中央サーバに依存せず、ローカルに完全なリポジトリを持つことで、通信状況に関係なく開発が可能です。
1‑2. 変更点の保存単位: スナップショット
Gitはファイルの変更差分ではなく、全体のスナップショット(状態)を保存します。
同一ファイルの複数変更履歴がある場合でも、ある時点でのファイル全体を一枚の画像として保持します。
1‑3. データ構造: オブジェクトとツリー
- Blob:ファイル内容
- Tree:ディレクトリ構造
- Commit:ツリーとメタ情報(作者・日時・親コミットなど)
これらが結合されて、Gitは「すべての変更を安全に追跡」できる構造になっています。
2. Gitを使う環境を整える
2‑1. Git のインストール
| OS | コマンド |
|---|---|
| macOS | brew install git |
| Windows | Chocolatey: choco install git |
| Linux | sudo apt install git (Ubuntu/Debian) |
2‑2. ユーザー情報の設定
git config --global user.name "あなたの名前"
git config --global user.email "you@example.com"
この設定はコミットの作者情報として使用されます。
2‑3. エディタ設定
デフォルトでは Vim が使われますが、好きなエディタを設定できます。
git config --global core.editor code # VS Code
git config --global core.editor vim # Vim
3. 基本操作:ローカルリポジトリを作る
3‑1. git init
mkdir myproject
cd myproject
git init
空のGitリポジトリが作成され、.git フォルダが生成されます。
3‑2. git status は状態確認
echo "Hello, Git!" > hello.txt
git status
変更がまだコミットに登録されていないことが表示されます。
3‑3. git add でステージング
git add hello.txt
git status
git status で Changes to be committed に移動したことが確認できます。
3‑4. git commit で保存
git commit -m "Initial commit"
コミットが作成され、変更点がスナップショットとして保存されます。
4. ファイル変更の履歴を扱う
4‑1. git log
コミット履歴を確認します。
git log --oneline
短く表示した場合、コミットハッシュとメッセージだけが見えます。
4‑2. git diff
変更点を確認する。
git diff # 未ステージングの変更
git diff --cached # ステージング済みの変更
4‑3. git show
特定のコミットの詳細を見る。
git show <commit-hash>
5. ブランチで並行開発
5‑1. git branch で一覧
git branch
現在のブランチ名が表示されます。
5‑2. 新しいブランチの作成
git branch feature-xyz
5‑3. ブランチの切り替え
git checkout feature-xyz
または
git switch feature-xyz
5‑4. ブランチ統合
git checkout main
git merge feature-xyz
自動マージに失敗した場合は、コンフリクトが発生します。ファイル内にマークが挿入され、自分で編集して解決します。
5‑5. ブランチ削除
git branch -d feature-xyz # マージ済みの場合
git branch -D feature-xyz # 強制削除
6. リモートリポジトリ(GitHub, GitLab, Bitbucket など)
6‑1. リモートを追加
git remote add origin https://github.com/yourname/repo.git
6‑2. プッシュ
git push -u origin main # 初回は -u で upstream を設定
6‑3. プル(取得)
git pull origin main
6‑4. フェッチ
git fetch origin
フェッチはローカルに更新情報を取得するだけで、作業ブランチは変化しません。
7. 変更の取り消しとリセット
7‑1. git reset
- ハードリセット:ファイルを完全に元に戻す
git reset --hard <commit-hash> - ソフトリセット:コミットは残すが、一時停止状態に戻す
git reset --soft <commit-hash>
7‑2. git revert
既に公開されたコミットを「逆の変更」で打ち消す。
git revert <commit-hash>
コミット履歴に新しいコミットが作成され、取り消しが反映されます。
7‑3. git stash
現在の作業状態を一時的に退避。
git stash
git stash pop
8. 高度な使い方 – Rebase と Cherry‑Pick
8‑1. git rebase
一連のコミットを別のベースに移動し、直線的な履歴に整える。
git checkout feature
git rebase main
注意:公開済みの履歴に対してはリセットを避けるべきです。
8‑2. git cherry-pick
特定のコミットだけを現在のブランチへ適用。
git cherry-pick abc1234
9. Gitフローとブランチ戦略
9‑1. Gitフロー(GitFlow)
- main/master:リリース済みの安定版
- develop:次のリリースに向けた開発ベース
- feature/*、release/*、hotfix/*:機能追加・リリース・バグ修正用
9‑2. GitHub Flow
- develop ではなく main に直接プルリクエストを作り、CI/CDで統合。
- CIが自動テスト・ビルドを実行し、マージ前に検証。
9‑3. GitLab Flow
- 環境(デプロイメント) と リリース を統合したフロー。
- マージリクエストでコードレビューとデプロイまでを連携。
10. コミットメッセージの書き方
| 規範 | 例 |
|---|---|
| 件名1行(最大50文字) | Add login authentication |
| 本文 | 1) 既存のアプリにログイン機能を実装し、 2) テストを追加しました。 |
| 署名 | Signed-off-by: Your Name you@example.com |
- なぜ:読み手が変更内容をすぐに理解できる
- どのように:変更点を箇条書きで説明
- 結果:何を得られたかを示す
11. CI/CD と Git の連携
11‑1. GitHub Actions
pushでビルド →pull_requestでテスト →workflow_dispatchで手動デプロイ。
11‑2. GitLab CI/CD
.gitlab-ci.ymlでジョブを定義。- ステージごとに
build,test,deployを分割。
11‑3. GitLab Pipelines の自動マージ
- 成功したCIの後、
auto-mergeオプションで自動でマージ。
12. Gitの保守とパフォーマンス
12‑1. git gc
ガーベジコレクションでデータベースを最適化。
git gc --aggressive
12‑2. LFS(Large File Storage)
画像やバイナリファイルの大容量管理。
git lfs install
git lfs track "*.psd"
git add .gitattributes
12‑3. サブモジュールとサブツリー
- サブモジュール:別リポジトリを固定バージョンで埋め込む
- サブツリー:別リポジトリの内容をリポジトリに統合
13. よくある質問とトラブルシューティング
| 質問 | 回答 |
|---|---|
| Git が遅い | 大きなリポジトリは git repack --aggressive を試す。 |
| コンフリクト多発 | git merge --no-ff で明確にブランチを統合し、レビューを厳格化。 |
| リセットで作業失われる | git reflog で過去の状態に戻せる。 |
| プッシュ失敗 | git pull --rebase でローカルを最新に合わせる。 |
14. まとめ – Git を使いこなす鍵
- コンセプトを理解:スナップショット・分散型・ブランチ
- 基本操作をマスター:
init,add,commit,push,pull,branch - リモートとCI を連携:GitHub Actions / GitLab CI
- ブランチ戦略を決める:GitFlow または GitHub Flow
- コミットメッセージを整備:読み手が内容を把握しやすい
- トラブルシュートを学ぶ:
reflog,stash,revertの使いどころ
Git の学習は一歩ずつ積み重ねることでコツがつかめます。
今回紹介したコマンドと慣習を実際のプロジェクトに落とし込むことで、
「コードの変更履歴がしっかり追跡でき、チームでスムーズに開発できる」環境を築くことができます。
ぜひ、今日から Git を使ったプロジェクト管理に挑戦してみてください。
不安が残る場合は、まずは小さなコードベースで試行錯誤し、徐々に大規模なリポジトリへ拡張していきましょう。
Tips
- GitHub CLI:
ghコマンドを使えば、リモート操作をターミナルから直接行えます。- ZenHub / GitLab Boards:タスク管理を GitHub/GitLab で完結させると、開発フローが一元化されます。
- コードレビュー:必ずPull Request / Merge Request に必須のレビューを設定しましょう。
以上で、Git の基礎から実践的な使い方まで網羅的に紹介しました。
次は実際にリポジトリを作ってみて、今回学んだコマンドを触ってみることが最も効果的です。 Happy coding!

コメント