Page 1
Git 入門<htmlday> in Tokushima
Presented by か (@ka_)
Page 2
バージョン管理とは
● 開発物のバージョンを管理すること
● バージョン管理ツールは
Version Control System (VCS) とも呼ばれる
Page 3
VCS で得られるメリット
● 変更履歴を残せる ( 基本 )
– 昔に戻れる
– 気楽に新機能を試せる
● 開発の進行をシステム化出来る
● 共同開発が容易になる
● コンフリクト ( 競合 ) 解消の手間を最小化
Page 4
Git とは
● バージョン管理ツールの 1 つ
● リポジトリ分散型という特徴を持つ
● 広く世界中で使われている ( 出典不要 )
● マージ ( 後で説明します ) が速い
Page 5
Git で得られるメリット● GitHub, Bitbucket が使える
● OSS に最適
– Pull Request という最高の開発フロー
● Heroku が使える
● TravisCI が使える
● Jenkins が使える
● その他諸々
Page 6
GitHub についての余談
● とある TED のセッション
– クレイ・シャーキー 「インターネットが (いつの日か) 政治を変える」
Page 7
Git 以外の話
● 分散型の VCS は Git 以外にもある
– メジャーどころ● Mercurial● Bazaar
● 他にも結構ある
● Git が多数派
● 正直 Mercurial も魅力的
Page 8
環境構築● Windows
– msysgit + TortoiseGit
● Mac– SourceTree
Page 9
msysgit のセットアップ
● ダウンロード
● インストール
– .NET Framework 3.5 以上が必要かも
● 再起動が必要かも
Page 17
インストール 4
● Git Bash here にチェック
Page 19
インストール 6
● Use Git Bash only を選択
Page 20
インストール 7
● Checkout Windows style, … を選択
Page 21
TortoiseGit のセットアップ
● ダウンロード
● インストール
– 初期設定
Page 26
インストール 3
● OpenSSH, Git default SSH Client を選択
Page 29
SourceTree のセットアップ
● ダウンロード
● インストール
● かんたん!!
Page 32
インストール 1
● 名前とメールアドレスを入力
Page 34
用語説明
● コミット
● リポジトリ
● ブランチ
● チェックアウト
● マージ
Page 35
コミット
● ( 語弊はあるが ) 1 つのバージョンのこと
● これを重ねていくことが開発の進行
全てコミット
Page 36
リポジトリ
● コミットの集合
● 歴史そのもの
● これのコピーを容易に作れるのが分散型
リポジトリ
この絵をリビジョングラフと言ったりする
Page 37
ブランチ
● 枝分かれしていくコミットの流れのこと
● これを作ることを「ブランチを切る」と言う
ブランチ
これもブランチ
Page 38
チェックアウト
● ブランチを切り替えること
● コミットをどのブランチに重ねていくか
Page 39
マージ
● ブランチを合流させること
この形は non fast forward merge と言う
ここにも 1 つのコミットが出来る
Page 40
Fast Forward とは?
● ブランチは大体以下のような作り方になる
● この場合「合流」しなくても良い
● 元のブランチを Fast Forward ( 早送り )
Page 41
どう使い分けるか ( 例 )
● Non Fast Forward
– 複数のコミットをひとまとめにしたい
● Fast Forward
– コミットが 1 つしか無い
– ブランチの情報が失われても良い
– リビジョングラフを綺麗な一本の線にしたい
● ↑ これは微妙な動機