「Gitって何?プログラミングの勉強を始めたけど、よく名前を見かけるのに何をするものかわからない…」
「GitHubって登録したほうがいいの?GitとGitHubって同じじゃないの?」
「バージョン管理って言葉は聆いたことあるけど、実際に何の役に立つのかイメージできない…」
そんな悩みを抱えていませんか?
GitとGitHubは、現役SEが毎日使う必須ツールです。SE・エンジニアを目指すなら、早めに慣れておくと就職後の業務がスムーズになります。この記事を読めば、GitとGitHubの違い・バージョン管理の仕組み・基本的な使い方の流れがひとつながりで理解できます。
Gitとは?バージョン管理システムの基本
バージョン管理とは何か?
バージョン管理とは、ファイルの変更履歴を記録・管理する仕組みのことです。
イメージしやすい例として、レポートを書くときのことを考えてみてください。「report_最終版.docx」「report_最終版 2.docx」「report_本当に最終版.docx」…といったファイルを量産した経験はありませんか?これは手動でバージョンを管理しようとした結果です。
プログラムのソースコードでこれをやると、どのファイルが最新なのかわからなくなったり、バグが混入した時点に戻れなくなったりと、深刻なトラブルが起きます。
Gitはこの問題を解決するためのバージョン管理システム(VCS: Version Control System)です。ファイルの変更履歴を自動的に記録し、過去の任意の時点に戻したり、複数人が同じファイルを編集しても変更をうまく統合したりすることができます。
Gitの特徴「分散型」とは?
Gitは分散型バージョン管理システムと呼ばれます。これはどういう意味でしょうか?
昔のバージョン管理システム(SVNなど)は、変更履歴を管理する「中央サーバー」が1台あり、そこに全員がアクセスする方式(集中型)でした。サーバーがダウンすると全員が作業できなくなる、という弱点がありました。
Gitでは、各メンバーのパソコンにそれぞれ完全な変更履歴が保存されます。ネットワークがなくてもローカルで履歴を確認・コミット(記録)できますし、サーバーが落ちても個人の作業は止まりません。これが「分散型」の強みです。
Gitを使うメリット
- 過去に戻れる:バグが出たとき「あの変更前」に即座に戻せる
- 複数人で同時開発できる:ブランチ機能で互いの作業が干渉しない
- 変更理由を残せる:コミットメッセージで「なぜ変更したか」を記録できる
- ファイルの差分が見える:何が変わったかを一目で確認できる
GitHubとは?Gitとの違いを理解しよう
GitHubはGitのリモートリポジトリホスティングサービス
GitとGitHubは名前が似ていますが、まったく別のものです。
| Git | GitHub | |
|---|---|---|
| 種類 | ソフトウェア(ツール) | Webサービス(プラットフォーム) |
| 役割 | バージョン管理をする仕組み | Gitのリポジトリをクラウド上で管理・共有 |
| 場所 | 自分のパソコン(ローカル) | インターネット上(リモート) |
| 開発元 | Linus Torvalds(個人) | Microsoft(企業) |
| 料金 | 無料 | 基本無料(有料プランあり) |
簡単に言うと、Gitが「変更を管理する機能」で、GitHubが「その内容をインターネット上に置いて複数人で共有できるサービス」です。
自分だけで使うならGitだけでも完結しますが、チームで開発したりポートフォリオを公開したりするには、GitHubを組み合わせるのが一般的です。
GitHubでできること
- ソースコードのクラウドバックアップ:PCが壊れてもコードが消えない
- チームでのコード共有・共同開発:プルリクエストでコードレビューが可能
- ポートフォリオ公開:SE転職・就職活動でのアピール材料になる
- OSSへの貢献:オープンソースプロジェクトに参加できる
- GitHub Actions(CI/CD):テストやデプロイの自動化ができる
SE・エンジニア界隈では、「GitHubアカウント=技術者の名刺」という言葉があるくらい、GitHubは重要な存在です。就職・転職活動の際にGitHubのURLを履歴書に記載するエンジニアも多くいます。
GitHubに似たサービスとの比較
| サービス名 | 特徴 | 主な利用シーン |
|---|---|---|
| GitHub | 世界最大のシェア。OSSが豊富 | 個人開発・就活ポートフォリオ・OSSコントリビュート |
| GitLab | CI/CD機能が充実。自社サーバーに構築可能 | 企業内開発・セルフホスティング |
| Bitbucket | JiraなどAtlassian製品と連携しやすい | Jira・Confluenceを使うチーム |
初心者はまずGitHubから始めるのがおすすめです。情報量が多く、困ったときに日本語の解説記事も見つかりやすいです。
Gitの基本用語をわかりやすく解説
Gitを使うには、いくつかの専門用語を理解する必要があります。難しく感じるかもしれませんが、ひとつひとつ押さえていきましょう。
リポジトリ・コミット・ブランチ
リポジトリ(Repository)とは、ファイルとその変更履歴をまとめて保管している「倉庫」のようなものです。自分のPC上にある「ローカルリポジトリ」と、GitHub上にある「リモートリポジトリ」の2種類があります。
コミット(Commit)とは、変更内容をリポジトリに「記録する」操作です。セーブポイントをつくるイメージです。コミットには「どのファイルをどう変更したか」と「コミットメッセージ(変更の説明)」が記録されます。
ブランチ(Branch)とは、開発の流れを「枝分かれ」させる機能です。メインの開発ラインを壊さずに、新機能の開発やバグ修正を別の枝(ブランチ)で進めることができます。
プッシュ・プル・マージ・クローン
プッシュ(Push):ローカルリポジトリの変更をリモートリポジトリ(GitHub)に送信(アップロード)する操作です。
プル(Pull):リモートリポジトリの変更をローカルリポジトリに取り込む操作です。チームメンバーが更新した内容を自分のPCに反映するときに使います。
マージ(Merge):別々のブランチで行った変更を、ひとつのブランチに統合する操作です。新機能の開発が完了したとき、メインブランチに取り込む際に使います。
クローン(Clone):GitHubなどにあるリモートリポジトリを、自分のPCにまるごとコピーしてくる操作です。チームの既存プロジェクトに参加するときや、OSSのコードを手元で試したいときに使います。
用語の関係を図でイメージする
- 作業する:ファイルを編集する(ワーキングディレクトリ)
- ステージする:
git addでコミット対象に追加(ステージングエリア) - コミットする:
git commitで変更を記録(ローカルリポジトリ) - プッシュする:
git pushでGitHubに送信(リモートリポジトリ)
この4ステップが、Gitの基本的な作業の流れです。最初はこれだけ覚えておけば十分です。
GitとGitHubの始め方!環境構築から初めてのコミットまで
Gitのインストールと初期設定
まずはGitをインストールしましょう。
Windowsの場合:git-scm.com からインストーラーをダウンロードして実行します。インストール後、Git Bashというターミナルが使えるようになります。
Macの場合:ターミナルで以下を実行すると、Homebrewを使ってインストールできます。
brew install git
インストール後は、ユーザー名とメールアドレスを設定します。この情報はコミット履歴に記録されます。
git config --global user.name "あなたの名前"
git config --global user.email "your-email@example.com"
GitHubアカウントの作成とリポジトリの作り方
次にGitHubのアカウントを作成します。
- github.com にアクセスして「Sign up」をクリック
- メールアドレス・パスワード・ユーザー名を入力して登録
- メール認証を完了させる
アカウントが作れたら、新しいリポジトリを作りましょう。GitHub右上の「+」マークから「New repository」を選び、リポジトリ名を入力して「Create repository」を押すだけです。
初めてのコミット&プッシュ
ローカルで作業したファイルをGitHubに送るまでの手順は次のとおりです。
# リポジトリを初期化(最初の1回だけ)
git init
# 変更ファイルをステージに追加(全ファイルを追加する場合)
git add .
# 変更内容をコミット(""の中に変更の説明を書く)
git commit -m "最初のコミット"
# GitHubのリモートリポジトリを登録(最初の1回だけ)
git remote add origin https://github.com/あなたのユーザー名/リポジトリ名.git
# GitHubにプッシュ
git push -u origin main
これでGitHub上にコードが公開されます。最初は手順が多く感じますが、2回目以降は git add → git commit → git push の3ステップだけです。
SE・エンジニアがGitを使う現場でのシーン
チーム開発でのブランチ運用
実際の現場では、複数人が同時に開発を進めます。そのためブランチを使った運用が一般的です。代表的な手法にGitフロー(Git Flow)があります。
- mainブランチ:本番環境に反映されているコード。直接変更しない
- developブランチ:開発の最新状態。各機能ブランチをマージしていく
- featureブランチ:新機能1つを開発するための枝。完了したらdevelopにマージ
新しい機能を追加するときは、まず git checkout -b feature/ログイン機能 のようにブランチを切り、そこで開発を進めます。他のメンバーの作業と干渉しないので、安心して実装に集中できます。
プルリクエスト(PR)でコードレビュー
プルリクエスト(Pull Request / PR)はGitHubの機能で、「このブランチの変更をメインに取り込んでください」という依頼を出す仕組みです。
PRを出すと、チームメンバーがコードを確認(レビュー)し、問題なければマージします。現場のSEは日常的にPRを使ってコードの品質を保っています。「コードレビューをする・される」という経験はSEとして成長するうえで非常に重要です。
就活・転職でのGitHub活用
SEを目指す人にとって、GitHubは自分のスキルを可視化するポートフォリオとしても活用できます。学習の記録(コミット履歴)や作ったアプリのコードを公開しておくと、採用担当者に「実際に手を動かしている」ことをアピールできます。
面接で「GitHubのURLを見せてください」と言われることもあります。早めにアカウントを作り、勉強の成果をどんどんコミットしていきましょう。
まとめ:GitとGitHubはSEの必須スキル
この記事のポイントをまとめます。
- Gitはバージョン管理ツール:ファイルの変更履歴を記録し、過去に戻ったり複数人での開発を可能にする
- GitHubはGitのリモートリポジトリサービス:クラウド上でコードを共有・管理できるWebサービス(GitとGitHubは別物)
- 基本の流れはadd → commit → push:この3ステップがGitの日常操作のほとんどをカバーする
- ブランチとプルリクエストが現場の要:チーム開発ではブランチを切ってPRを出すのが標準的な運用
- GitHubはポートフォリオにもなる:SE転職・就活でスキルのアピールに直結する
Git・GitHubは最初こそ操作に戈惑いますが、慣れてしまえば毎日使う「当たり前のツール」になります。まずは今日、GitHubアカウントを作って最初のコミットを体験してみてください!
関連記事もあわせて読むと理解が深まります。