ゼロから始めるバージョン管理と共同開発の世界へようこそ
初心者が最初につまずきやすいのが「Git」と「GitHub」の違いです。簡単に言うと、GitはあなたのPCで動く「バージョン管理の道具」、GitHubはその道具で作ったものを保管・共有する「インターネット上の場所」です。
| 特徴 | 💻 Git (道具) | ☁️ GitHub (場所) |
|---|---|---|
| 役割 | ファイルの変更履歴をPC上で記録・管理するソフトウェア。 | Gitの履歴をネット上で保管し、チームで共有するためのウェブサービス。 |
| 作業場所 | ローカルPC (オフラインでもOK) | クラウド (インターネット接続が必要) |
| 例えるなら | 文章を書くための「Word」ソフト | Wordファイルを共有・共同編集する「Google Docs」 |
まず、一人でプロジェクトを進める際の基本的な流れを覚えましょう。GitHub上のプロジェクトを手元にコピーし、変更を加えて、またGitHubに戻す。このサイクルがすべての基本です。
Clone (複製)
GitHubからPCへ
Edit & Add & Commit (編集と記録)
PC上で作業
Push (送信)
PCからGitHubへ
チーム開発では、元のコード(mainブランチ)を直接編集しません。代わりに、自分の作業用の「コピー(ブランチ)」を作成し、そこで作業します。これにより、他の人の作業に影響を与えることなく、安全に新機能の追加やバグ修正ができます。
👤 Aさんの作業
👤 Bさんの作業
作業が終わったら、自分のブランチをmainブランチに「マージ(統合)」します。
自分のブランチでの作業が完了したら、「この変更を取り込んでください」とチームに依頼します。この依頼が「プルリクエスト」です。プルリクエストを通じて、チームメンバーは変更内容を確認(コードレビュー)し、問題がなければ承認します。
プルリクエスト作成
「この変更どうでしょう?」
コードレビュー
「ここ、もっと良くできるかも!」
マージ (統合)
「OK!取り込みます」
`README.md`は、プロジェクトのトップページに表示される説明書です。訪問者が最初に目にするこのファイルで、プロジェクトの目的や使い方を分かりやすく伝えましょう。
パスワードなどの機密情報や、OSが自動生成するファイルは、リポジトリに含めるべきではありません。`.gitignore`ファイルにファイル名を書いておくことで、Gitがそれらを無視するようになります。
# OSファイル
.DS_Store
# 機密情報
.env
# 依存パッケージ
/node_modules
コミットメッセージは「何を変更したか」を明確に伝えるための重要な記録です。「Conventional Commits」という規約に従うと、履歴が分かりやすくなります。例えば、コミットの種類を`feat`(新機能)、`fix`(バグ修正)のように接頭辞で示します。
このグラフは、典型的なプロジェクトにおけるコミットの種類のおおよその割合を示しています。バグ修正(fix)や新機能追加(feat)が多いことがわかります。