
Claude CodeやCodexを使って開発していると、しょっちゅう出てくるのが「Git」です。
最初は、こう思っていました。
「GitってMacに最初から入っている機能なの?」
さらに、こうも考えました。
「そういえば、macOSってLinuxが元なんだっけ?」
こうやって考え出すと、Git、Linux、macOS、UNIXの関係が、頭の中でごちゃごちゃしてきます。
せっかくなので、一度整理してみました。
GitはMacの機能ではない
まず、GitはmacOSそのものの機能ではありません。
Gitは、ファイルの変更履歴を管理するためのソフトウェアです。
Macのターミナルで、次のように入力すると、Gitが使える状態かどうかを確認できます。
|
1 |
git --version |
MacではAppleの「Command Line Tools」をインストールすると、Gitも一緒に入ります。
そのため、最初からMacの機能のように感じてしまいます。
しかし、Git自体は独立したソフトウェアです。
次のような環境で利用できます。
- macOS
- Linux
- Windows
GitはLinux開発から生まれた
では、なぜGitとLinuxは、よく一緒に出てくるのでしょうか。
Gitを作ったのは、Linuxを開発したLinus Torvalds(リーナス・トーバルズ)です。
2005年、Linuxカーネルの開発を効率よく進めるために、Gitが作られました。
つまり、Linuxの開発を管理するためにGitが生まれた、という関係です。
とはいえ、GitがLinuxの一部というわけではありません。
Linux開発をきっかけに誕生し、その後、あらゆる環境で使われるようになったソフトウェアです。
では、macOSはLinuxが元なのか?
ここも、私は勘違いしていました。
macOSは、Linuxを元に作られたOSではありません。
macOSは「UNIX系」のOSです。
ざっくりした流れを書くと、こうなります。
|
1 2 3 4 5 6 7 8 9 |
UNIX ↓ BSD系UNIX ↓ NeXTSTEP / OPENSTEP ↓ Mac OS X ↓ macOS |
一方、Linuxは、UNIXそのものをコピーして作ったわけではありません。
UNIXに似た思想や操作体系を持つOSとして、別に開発されました。
そのため、macOSとLinuxは、親子というより、同じUNIX文化を共有する親戚くらいに考えると分かりやすいです。
MacとLinuxで同じコマンドが使える理由
Macのターミナルを触っていると、次のようなコマンドが登場します。
|
1 2 3 4 5 6 7 |
ls cd pwd mkdir cp mv rm |
これらは、Linuxでも普通に使われています。
「やっぱり、MacはLinuxなんじゃないか?」
と思ってしまいますが、そうではありません。
MacもLinuxも、UNIX系の思想や仕組みを受け継いでいます。
だから、操作方法がよく似ているのです。
イメージとしては、こんな感じです。
|
1 2 3 4 5 |
UNIX / \ BSD系 UNIX風OS | | macOS Linux |
厳密な系譜を表す図ではありませんが、最初に理解するには、これくらいが分かりやすいと思います。
GitとGitHubは別物
ここでもう一つ、混乱しやすいものがあります。
GitHubです。
GitとGitHubは、同じものではありません。
Gitは、MacやPCの中で、ファイルの変更履歴を管理する仕組みです。
GitHubは、Gitで管理しているデータをインターネット上に保存したり、複数人で共有したりするサービスです。
つまり、GitHubを使わなくても、Gitは使えます。
たとえば、Claude Codeで作っているプロジェクトをGitで管理しておくと、
「昨日の状態に戻したい」
「Phase 2.0の状態に戻したい」
といった操作が、かなり簡単になります。
GitHubに公開する必要はありません。
自分のMacの中だけでGitを使ってもいいのです。
Claude Codeを使い始めて、Gitが身近になった
これまでGitというと、
「プログラマーがGitHubと一緒に使う、難しそうなもの」
というイメージがありました。
しかし、Claude CodeやCodexを使うようになって、Gitの意味がかなり分かりやすくなりました。
生成AIにコードを書いてもらうと、変更量がとても多くなります。
すると、
「さっきの変更を元に戻したい」
「ここまではうまく動いていた」
という場面が増えます。
そこでGitが役立ちます。
Gitは、単なるプログラマー向けの専門ツールというより、AIにどんどん作業してもらう時代の「セーブポイント」と考えると、一気に分かりやすくなりました。
ゲームでいう、
「ここまでうまくいったから、一度セーブしておこう」
に近い感覚です。
まとめ
今回整理してみて、ようやく関係が見えてきました。
|
1 2 3 4 5 6 7 |
UNIX ├─ BSD系 → macOS └─ UNIX文化を受け継ぐ → Linux ↓ Linux開発のためにGit誕生 ↓ Mac / Linux / Windowsで普及 |
ポイントは、次のとおりです。
- macOSはLinuxではない
- macOSとLinuxは、どちらもUNIX系の文化を持っている
- GitはLinux開発のために生まれた
- GitはLinuxの機能ではなく、独立したソフトウェア
- GitHubを使わなくても、Gitは使える
Claude Codeを使い始めたことで、これまで名前だけ知っていたGitやUNIXの関係が、急に自分ごととして理解できるようになりました。
生成AIを使って開発を始めると、コードだけでなく、その裏側にある昔からのコンピューターの仕組みまで、自然と学ぶことになります。
これも、生成AI時代の面白いところなのかもしれません。


コメント