Gitとバージョン管理

luagate/git-version-control-introGit入門25Web 開発

上から下へ、全 25 枚そのまま並べています。

発表モードで開く

Git入門

Gitとバージョン管理

変更を記録する 〜歴史をたどれる〜

1
1

目次

今日の流れ

1. バージョン地獄とその解決

2. Gitとリポジトリ・コミット

3. ブランチとマージ

4. リモートとチーム開発

5. まとめと振り返り

2
2
Git入門 - イントロ

今日のゴール

この時間で身につけてほしいことです。

  • バージョン管理が必要な理由が分かる
  • Gitとリポジトリの役割が分かる
  • コミットで履歴を残す価値が分かる
  • ブランチとマージをイメージできる
  • リモートとチーム開発の流れが分かる
10
3
Git入門 - イントロ

バージョン地獄

ファイル名に版数を足し続ける管理は、すぐに収拾がつかなくなります。

  • 最終版というファイルがいくつもできる
  • 最終版の本当の最終という名前が生まれる
  • どれが最新か誰も分からなくなる
  • 誰がどこを直したかも追えない
  • 古い状態に戻すのも難しい
11
4
Git入門 - イントロ

バージョン管理 とは

ファイルの変更の歴史を記録し、いつでも過去にさかのぼれるようにする仕組みです。

バージョン管理(Version Control)

ファイルをいつ・誰が・どう変えたかを記録し、過去の状態に戻したり違いを比べたりできる仕組み。ゲームのセーブデータのように、好きな時点に戻れる。

変更の歴史を記録する

いつ誰が直したか分かる

過去の状態に戻せる

版が1本にまとまり混乱しない

12
5
Git入門 - イントロ

Git とは

いま最も広く使われている、バージョン管理のための代表的なツールです。

Git

ファイルの変更履歴を記録・管理するためのツール。手元で素早く動き、過去への巻き戻しや、複数人での同時作業を安全に進められる。

変更を細かく記録できる

手元で素早く動く

過去のどの時点にも戻せる

大勢での共同作業に強い

以前学んだCI/CDの起点にもなる

13
6

Git入門 - 記録

2

第2部 記録のしくみ

リポジトリとコミット

20
7
Git入門 - 記録

リポジトリとコミット

変更履歴を入れる箱がリポジトリ、ある時点を保存した記録がコミットです。

  • リポジトリは履歴をしまう箱
  • コミットはある時点のセーブ
  • 各コミットに変更内容が残る
  • 誰がいつ直したかも記録される
  • 履歴を1本の流れでたどれる
21
8
Git入門 - 記録

コミット とは

変更をひとまとまりにして履歴へ刻む操作です。やり直しの目印になります。

コミット(Commit)

変更内容をメッセージとともに記録し、履歴へ刻む操作。ゲームのセーブのように、その時点の状態をいつでも呼び出せる目印になる。

変更をひとまとめに記録する

変更の理由をメッセージで残す

その時点に戻る目印になる

小さくこまめに刻むのがコツ

22
9
Git入門 - 記録

基本のgitコマンド

変更を記録するまでの、よく使う基本コマンドの流れです。

bash
# 変更を記録の準備に加える
git add memo.txt

# 変更をメッセージ付きで記録する
git commit -m "メモを追加"

# これまでの履歴を見る
git log

# 今の状態を確認する
git status
23
10
Git入門 - 記録

履歴を残す価値

記録を残すことで、戻る・比べる・たどるの3つができるようになります。

戻れる
  • 過去の状態に巻き戻す
  • 壊しても安心
比べられる
  • どこを変えたか分かる
  • 差分を確認できる
たどれる
  • いつ誰が直したか追える
  • 理由も残る
24
11

Git入門 - ブランチ

3

第3部 ブランチとマージ

枝分かれして合流する

30
12
Git入門 - ブランチ

ブランチ とは

本流に影響を与えずに、作業用の枝を分けて進める仕組みです。

ブランチ(Branch)

本流とは別に作業用の枝を作り、そこで自由に変更を試せる仕組み。本番に影響を与えずに新機能を開発し、できあがったら本流に合流させる。

本流とは別の作業用の枝

本番に影響せず試せる

複数の作業を並行できる

できたら本流に合流させる

31
13
Git入門 - ブランチ

ブランチの使い方

枝を切り、作業し、合流させる、という一連の流れで進めます。

1. 枝を切る

作業用ブランチを作る

2. 作業する

枝の上で変更を重ねる

3. 記録する

こまめにコミットする

4. 合流する

本流にマージする

32
14
Git入門 - ブランチ

マージ とは

枝で進めた変更を、本流に取り込んで1つにまとめる操作です。

マージ(Merge)

別々のブランチで進めた変更を1つに統合する操作。それぞれの川の流れを本流に合流させるイメージ。変更が重なる箇所は調整(解消)が必要なこともある。

枝の変更を本流に取り込む

複数の作業を1つにまとめる

重なる箇所は調整して解消する

合流後も履歴は残る

33
15
Git入門 - ブランチ

ブランチとマージのコマンド

枝を作って移動し、作業後に本流へ合流させるコマンドの流れです。

bash
# 新しいブランチを作って移動する
git switch -c feature

# 本流のブランチへ戻る
git switch main

# featureの変更を本流に取り込む
git merge feature
34
16

Git入門 - チーム

4

第4部 リモートとチーム開発

GitHubでみんなと共有

40
17
Git入門 - チーム

リモートとGitHub

履歴をネット上に置いて共有する場所がリモート、その代表がGitHubです。

リモート / GitHub

手元のリポジトリの内容をネット上に置いて共有する先がリモート。GitHubはそのリモートを提供する代表的なサービスで、世界中の開発者が共同作業に使う。

履歴をネット上で共有する

チーム全員が同じ歴史を見られる

GitHubが代表的なサービス

公開して世界と協力もできる

41
18
Git入門 - チーム

リモートとやり取りするコマンド

手元の記録をリモートへ送り、リモートの変更を取り込むコマンドです。

bash
# 手元の記録をリモートへ送る
git push origin main

# リモートの最新を取り込む
git pull origin main

# リモートのリポジトリを手元に複製する
git clone https://github.com/user/repo.git
42
19
Git入門 - チーム

チーム開発の流れ

枝を切ってから本流に合流させるまでの、チームでの基本的な進め方です。

最新を取り込む(pull)
作業用のブランチを切る
変更をコミットする
リモートへ送る(push)
確認してマージする
43
20
Git入門 - チーム

過去に戻る手間の比較(イメージ)

Gitがあれば、手作業のコピー管理よりずっと少ない手間で過去に戻れます。あくまでイメージです。

20 手間(イメージ)1612840
18手間(イメージ)
9手間(イメージ)
1手間(イメージ)
手作業コピー
Gitなしメモ
Git活用

出典: 管理方法ごとの巻き戻しの手間の傾向を示す概念図(概算)

44
21
Git入門 - まとめ
クイズ

振り返りクイズ

今日の内容を確認しましょう。

変更をメッセージとともに履歴へ刻む操作を何と呼ぶ?

A
マージ
B
コミット
C
クローン
D
プッシュ
50
22
Git入門 - まとめ
答え

振り返りクイズ 解答

変更をメッセージとともに履歴へ刻む操作を何と呼ぶ?

A
マージ
B
コミット
C
クローン
D
プッシュ

変更をひとまとめにし、メッセージを添えて履歴へ刻む操作をコミットと呼びます。マージは枝の合流、クローンはリモートの複製、プッシュはリモートへの送信です。こまめなコミットが安心して開発を進めるコツです。

51
23
Git入門 - まとめ

質疑・次回予告

今日のまとめと、次に学ぶテーマです。質問があればここで受け付けます。

今日のおさらい
  • Gitは変更の歴史を記録する
  • コミットでいつでも過去に戻れる
  • ブランチとマージで共同作業する
次回予告
  • データ形式 〜JSON・XML・YAML〜
  • データのやり取りの書き方を学ぶ
52
24
"

Gitは変更の歴史を刻むタイムマシン。コミットでセーブし、ブランチで枝分かれし、マージで合流する。GitHubで歴史を共有すれば、チームは同じ物語を一緒に書き進められます。

Git入門

53
25