構成管理(Git等)とは(全体像)
構成管理とは、システムを作る部品——ソースコード・文書・使っている部品(ライブラリ)などの、「いつ・だれが・どこを変えたか(変更履歴)」と「今どの版か(バージョン)」を管理する活動のこと。
これがあると、前の状態に戻したり(ロールバック)、複数人が同時に作業したりしやすくなる。「いつのまにか壊れて、もとに戻せない」を防げる。
その代表ツールがGit。そして、Gitで管理したものをネット上に置いて、みんなで共有・共同作業する場が、GitHubなどのサービスだ。
詳しく:GitとGitHubの違い、分散型
ここが心臓部。まず、よく混同する2つを区別しよう。
GitとGitHubの違い
| 名前 | 何か |
|---|---|
| Git | バージョン管理を行う「ツール(本体)」 |
| GitHub | Gitで管理したものを置いて共有する「場(サービス)」 |
Gitは、手元で変更履歴を管理するツール(しくみ)そのもの。一方、GitHubは、Gitの内容をネット上に置いて、みんなで共有したり共同作業したりする場所(ホスティングサービス)。「Git=GitHub」と書くと誤りになる。
そしてもう1つ大事なのが、Gitは「分散型」だということ。分散型とは、各自の手元にも、変更履歴のコピーがまるごとあるやり方。中央の1か所だけにしか履歴がない「集中型」とは違う。分散型なので、ネットにつながっていなくても作業しやすく、1か所が止まっても困りにくい。
わかりやすく言い換えると
身近なたとえで整理しよう。
構成管理は、「文書のセーブと履歴をきちんと残す」イメージ。前の版にすぐ戻せて、だれがどこを直したか分かる。要するに、変更の記録をしっかり残すしくみだ。
GitとGitHubの違いは、「ノート(Git)」と「ノートを置いて共有する本棚(GitHub)」の関係に近い。つまり、Gitは記録するツール、GitHubはそれを共有する場、ということ。
分散型は、「全員が自分の手元にも、まるごとコピーを持っている」こと。つまり、中央の1か所だけに頼らないやり方だ。
試験のツボ
🔴 一番出る:構成管理とGit
①ソースコードなどのバージョンと変更履歴を管理する活動
②代表ツールがGit(前の状態に戻す・並行作業がしやすい)
🔴 次に出る:GitとGitHubの違い
①Gitは、バージョン管理を行うツール(本体)
②GitHubは、Gitの内容を置いて共有する場(サービス)
🟡 押さえると安定:Gitは分散型
①各自の手元にも、変更履歴のコピーがまるごとある
②中央1か所だけの「集中型」とは違う
よくある間違い
①「GitとGitHubは、まったく同じものだ」→ ✗ Gitはバージョン管理のツール、GitHubはそれを共有する場(サービス)。別のもの。
②「Gitは、中央の1か所だけに履歴がある集中型だ」→ ✗ Gitは分散型で、各自の手元にも履歴のコピーがある。
③「構成管理とは、社員の給与を計算するためのしくみだ」→ ✗ 構成管理は、コードなどのバージョンと変更履歴を管理する活動。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(構成管理の正体)
構成管理に関する次の記述のうち、最も適切なものはどれか。
- 社員の出退勤の時刻を記録して、毎月の給与を計算するためのしくみである
- 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指している
- 完成したシステムを宣伝して、より多く売るための広告活動のことである
- ソースコードなどのバージョンと変更履歴を管理していく活動のことである
解答は 4 だよ。
構成管理は、ソースコードなどのバージョンと変更履歴を管理する活動だよ。前の状態に戻したり、並行作業をしやすくするんだ。
選択肢1は給与計算、選択肢2は請求書の事務、選択肢3は広告で、どれも違うよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 給与計算のしくみではない |
| 2 | ✗ | 請求書の事務の話 |
| 3 | ✗ | 広告活動ではない |
| 4 | ✓ | バージョンと変更履歴を管理するで正しい |
オリジナル問題2(GitとGitHubの違い)
GitとGitHubの違いに関する次の記述のうち、最も適切なものはどれか。
- Gitはバージョン管理のツールで、GitHubはそれを置いて共有する場所である
- Gitは共有する場、GitHubはバージョン管理のツールという、逆の説明になっている
- GitもGitHubも、社員の給与を計算することだけを目的にした同じものである
- GitもGitHubも同じ意味で、呼び名が2つあるだけで違いはないとされている
解答は 1 だよ。
Gitはバージョン管理のツール、GitHubはそれを置いて共有する場だよ。「Git=GitHub」と混同しないでね。
選択肢2は説明が逆、選択肢3は給与計算、選択肢4は「違いはない」が誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | Gitはツール・GitHubは共有の場で正しい |
| 2 | ✗ | GitとGitHubの説明が逆 |
| 3 | ✗ | 給与計算のものではない |
| 4 | ✗ | 両者には違いがある |
オリジナル問題3(Gitは分散型)
Gitの方式に関する次の記述のうち、最も適切なものはどれか。
- Gitは、中央の1か所だけに履歴がある集中型のしくみだとされている
- Gitは分散型で、各自の手元にも変更履歴のコピーがまるごとある
- Gitは、社員の給与を計算することだけを目的にしたしくみである
- Gitは、取引先へ請求書を郵送する事務作業のしくみのことである
解答は 2 だよ。
Gitは分散型で、各自の手元にも変更履歴のコピーがまるごとあるよ。中央1か所だけの集中型とは違うんだ。
選択肢1は「集中型」が誤り、選択肢3の給与計算、選択肢4の請求書の事務は、いずれも誤りだよ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | Gitは集中型ではなく分散型 |
| 2 | ✓ | 各自に履歴のコピーがある分散型で正しい |
| 3 | ✗ | 給与計算のしくみではない |
| 4 | ✗ | 請求書の事務ではない |
まとめ
押さえどころ
- 🔴 構成管理 = ソースコードなどのバージョンと変更履歴を管理する活動。代表ツールがGit。
- 🔴 GitとGitHub = Gitはバージョン管理のツール、GitHubはそれを置いて共有する場。
- 🟡 Gitは分散型 = 各自の手元にも履歴のコピーがある。中央1か所だけの集中型ではない。
次に学ぶ
- OSS開発 ── ソースコードを公開して協働開発する。GitHubなどで構成管理しながら進める。
- DevOps・CI/CD ── こまめに合わせて配信するしくみ。構成管理を土台にして自動化する。
執筆: SikakuQuest編集部