皆さん、こんにちは!
今回は、開発の現場で必須のツールとなっているGitについて、「名前は聞くけどよくわからない…」 という初心者の方に向けて、その基本を徹底解説します!
Gitが何なのか、そしてよく一緒に名前が挙がるGitHubやSubversionとの違い、さらにはGitコマンドの早見表やよくある間違いまでまとめていますので、ぜひ最後までご覧ください!
🚀 1. Gitとは?その役割と仕組み
Gitは「バージョン管理システム」
一言でいうと、Gitはバージョン管理システムの一つです。
プログラムのソースコードやドキュメントなどのファイルに対する変更履歴をすべて記録・管理するためのツールです。
* いつ、誰が、どんな変更を加えたか
* ファイルを以前の状態に簡単に戻す
といったことを可能にし、特に複数人での共同開発において、ファイルの競合を防ぎ、開発効率を大幅に向上させます。
仕組み:ローカルでの分散管理
Gitの最大の特徴は、「分散型」である点です。
各開発者のPC(ローカル)それぞれに、ファイルの完全な履歴を持ったリポジトリ(貯蔵庫)が存在します。これにより、ネットワークに繋がっていない状態でも作業や履歴の確認が可能です。
* リポジトリ: 履歴やメタデータなど、バージョン管理に必要な全ての情報が格納されている場所です。
* ローカルリポジトリ: 自分のPC上にあるリポジトリ。
* リモートリポジトリ: 複数人で共有するためのサーバー上にあるリポジトリ(例:GitHub)。
* コミット: ファイルの変更をリポジトリに記録する行為。このコミットが履歴の単位となります。
* ブランチ: 開発を並行して行うための枝分かれした作業ライン。本体のコード(mainなど)に影響を与えずに新機能開発やバグ修正ができます。
🤝 2. よくある疑問!関連ツールとの違い
Gitとセットで語られることが多いGitHubや、以前よく使われていたSubversion(SVN)との役割の違いを比較してみましょう。
| ツール名 | 役割 | 特徴・利用方法 | メリット | デメリット |
| --- | --- | --- | --- | --- |
| Git | バージョン管理システム本体 | 履歴の管理と開発者のローカルPCでの分散管理。 | ネットワークがなくても履歴管理が可能。ブランチの操作が容易で高速。 | 仕組みが複雑で学習コストがやや高い。 |
| GitHub | リモートリポジトリのホスティングサービス | Gitで管理しているリポジトリをインターネット上で共有・公開するためのウェブサービス。 | チームでの共有・協業が容易。プルリクエストやIssue管理など開発支援機能が豊富。 | 基本的にインターネット接続が必要。サーバーダウンなどのリスクはゼロではない。 |
| Subversion (SVN) | 集中型バージョン管理システム | 履歴の管理を行うが、リポジトリは専用のサーバーに集中して置かれる。 | シンプルな仕組みで理解しやすい。全履歴がサーバーにあるため、ローカル容量を節約できる。 | ネットワークが必須。サーバーに障害が発生すると作業が困難になる。ブランチ作成・マージがGitより重い傾向がある。 |
📌 GitHub Actionsとは?
GitHub Actionsは、GitHubが提供する**CI/CD(継続的インテグレーション/継続的デリバリー)**などの自動化機能です。
「リポジトリにコードがプッシュされたら、自動でテストを実行し、問題なければ本番環境にデプロイする」といった、開発プロセスを自動化するためのものです。GitやGitHubとは役割が異なりますが、GitHub上で開発を加速させるツールとして非常に重要です。
📝 3. 必携!Gitコマンド早見表
Gitの操作は基本的にコマンドラインで行います。ここでは、最低限覚えておきたい基本コマンドを紹介します。
| コマンド | 役割 |
| --- | --- |
| git init | 新しいリポジトリを作成する。 |
| git clone [URL] | リモートリポジトリをローカルに複製する。 |
| git status | 現在のファイルの状態(変更があるか、など)を確認する。 |
| git add [ファイル名] | 変更をステージングエリア(コミットの準備場所)に追加する。 |
| git commit -m "[メッセージ]" | ステージングされた変更をローカルリポジトリに履歴として記録する。 |
| git log | コミットの履歴を表示する。 |
| git branch | ブランチの一覧を表示する。 |
| git checkout [ブランチ名] | 別のブランチに切り替える。 |
| git pull | リモートリポジトリの最新の変更を取り込む。 |
| git push | ローカルでのコミットをリモートリポジトリに送信する。 |
🚨 4. 初心者がよく間違える使い方・注意点
❌ 巨大なファイルをコミットしてしまう
Gitはソースコードのようなテキストファイルの管理に優れています。画像ファイルや動画ファイルなど、巨大なバイナリファイルをコミットし続けると、リポジトリのサイズが膨大になり、クローンやプッシュに時間がかかるようになります。
\rightarrow 対策: 巨大なファイルの管理には**Git LFS (Large File Storage)**などの別のツールを利用しましょう。
❌ 頻繁すぎる/疎かすぎるコミット
* 頻繁すぎるコミット: 1文字変えるたびにコミットなど、細かすぎると履歴が煩雑になります。
* 疎かすぎるコミット: 何日もかけて大量の変更を一気にコミットすると、問題発生時の原因特定や切り戻しが困難になります。
\rightarrow 対策: 論理的な一つの作業単位(例: ログイン機能の完成、特定のバグ修正)が終わるたびにコミットしましょう。
❌ git add .の後に意図しないファイルをコミット
git add .は、作業ディレクトリにある変更された全てのファイルをステージングエリアに追加します。誤って機密情報(パスワードなど)が含まれた設定ファイルや、一時的な作業ファイルまでコミットしてしまう可能性があります。
\rightarrow 対策: コミット前には必ずgit statusで何がステージングされているかを確認し、不要なファイルは.gitignoreファイルに記述して管理対象から外しましょう。