文系男子が日和るIT開発~IT知識なしで飛び込んだIT企業

文系男子だからIT企業に就職するなんて考えてもみませんでしたが、日和ながら日々くらいついています。

【初心者必見!】Gitって何?GitHubやSubversionとの違い、使い方を徹底解説!

皆さん、こんにちは!

今回は、開発の現場で必須のツールとなっているGitについて、「名前は聞くけどよくわからない…」 という初心者の方に向けて、その基本を徹底解説します!


Gitが何なのか、そしてよく一緒に名前が挙がるGitHubSubversionとの違い、さらにはGitコマンドの早見表やよくある間違いまでまとめていますので、ぜひ最後までご覧ください!

🚀 1. Gitとは?その役割と仕組み

Gitは「バージョン管理システム
一言でいうと、Gitはバージョン管理システムの一つです。
プログラムのソースコードやドキュメントなどのファイルに対する変更履歴をすべて記録・管理するためのツールです。
* いつ、誰が、どんな変更を加えたか
* ファイルを以前の状態に簡単に戻す
といったことを可能にし、特に複数人での共同開発において、ファイルの競合を防ぎ、開発効率を大幅に向上させます。
仕組み:ローカルでの分散管理
Gitの最大の特徴は、「分散型」である点です。
各開発者のPC(ローカル)それぞれに、ファイルの完全な履歴を持ったリポジトリ(貯蔵庫)が存在します。これにより、ネットワークに繋がっていない状態でも作業や履歴の確認が可能です。
* リポジトリ: 履歴やメタデータなど、バージョン管理に必要な全ての情報が格納されている場所です。
* ローカルリポジトリ: 自分のPC上にあるリポジトリ
* リモートリポジトリ: 複数人で共有するためのサーバー上にあるリポジトリ(例:GitHub)。
* コミット: ファイルの変更をリポジトリに記録する行為。このコミットが履歴の単位となります。
* ブランチ: 開発を並行して行うための枝分かれした作業ライン。本体のコード(mainなど)に影響を与えずに新機能開発やバグ修正ができます。

🤝 2. よくある疑問!関連ツールとの違い

Gitとセットで語られることが多いGitHubや、以前よく使われていたSubversionSVN)との役割の違いを比較してみましょう。

ツール名 役割 特徴・利用方法 メリット デメリット
--- --- --- --- ---
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ファイルに記述して管理対象から外しましょう。

🎁 まとめ

Gitは最初こそ少し難しく感じるかもしれませんが、一度慣れてしまえば、開発の効率と安全性を劇的に向上させてくれる強力なツールです。
Git (バージョン管理) \iff GitHub (共有・協業)
この関係性を理解し、まずは簡単なファイルの変更・コミット・プッシュから使ってみましょう!
「継続は力なり!」 少しずつで大丈夫です。
次回は「ブランチを使った開発の流れ」について、もう少し深掘りしてみたいと思います。お楽しみに!👋

この記事が役に立ったら、ぜひ読者登録やSNSでのシェアをお願いします!