ITエンジニア歴30年以上の皆さん、長年Visual SourceSafe (VSS) や Subversion (SVN) で開発現場を支えてこられたことと思います。
本日は第1回として、「GitとGitHubは何が違うのか?」という素朴な疑問から、図解とともに分かりやすく解き明かしていきます!
① 導入・本日の達成目標
長年VSSやSVNを使ってきたエンジニアがGitに触れたとき、一番最初に混乱するのが「GitとGitHubは同じもの?」「コミットしたのにサーバーに反映されないのはなぜ?」という疑問です。
本日のゴールは以下の3つです!
- Git(手元のツール)とGitHub(Webサービス)の違いがスッキリわかる。
- SVNの「中央サーバー」とGitの「ローカルリポジトリ」の違いを掴む。
- 「コミット」と「プッシュ」の役割分担を理解する。
② 集中型(SVN)と分散型(Git)の違い
まず、これまで皆さんが使ってきたVSSやSVN(集中型バージョン管理)の仕組みを見てみましょう。
集中型では、オフィスやクラウドにある「中央サーバー」がすべての履歴を1台で管理していました。
そのため、ファイルを編集するときは中央サーバーから取得し、コミットすると即座に中央サーバーに書き込まれます。誰かがファイルをロックしていたら他の人は触れませんでした。
これに対し、現代のGit(分散型バージョン管理)は次のような仕組みです。
Gitでは、開発者全員のパソコンの中に「完全なリポジトリ(過去の全履歴)」が丸ごと存在します!
GitHubは、みんなのリポジトリを同期するための「共有クラウド(ハブ)」に過ぎません。
③ Gitを理解する「3つの領域」
SVNにはなかったGit独特の概念が「ステージング(git add)」です。Gitの中には3つの部屋があります。
- ① ワークツリー(作業場所): Visual Studioなどでソースコード(.cs)を書いているフォルダ。
- ② ステージ(出荷準備): 次のコミットに含めるファイルだけを乗せるトレイ(
git addで移動)。 - ③ ローカルリポジトリ(保存庫): 確定した履歴を保管する金庫(
git commitで保存)。
④ 「コミット」と「プッシュ」の違い
ここが一番の重要ポイントです!
- コミット(git commit): 手元のパソコン(ローカルリポジトリ)に保存する操作。まだ誰にも見えません。
- プッシュ(git push): 手元に溜めたコミットを、GitHub(クラウド)へ一気に送り届ける操作。
「コミットしたのに同僚の画面にコードが出てこない!」
これはGit初心者が必ず通る道です。コミットは手元に保存しただけなので、作業が終わったら必ず「プッシュ(git push)」を実行しましょう!
⑤ PowerShellでの基本コマンド
C#プロジェクトをGitで管理する一連の流れです。
# 1. フォルダをGit管理下に置く git init # 2. 変更したファイルをステージ(準備トレイ)に乗せる git add . # 3. 手元のリポジトリに保存する(コミット) git commit -m "feat: C#ソリューションの初回作成" # 4. GitHub(クラウド)へ送信して共有する(プッシュ) git push origin main
第1回の講義、お疲れ様でした!
「Gitは手元の金庫」「GitHubはみんなの広場」「コミット=手元保存」「プッシュ=広場へ共有」というイメージが掴めれば完璧です!
コメント
コメントを投稿