Gitを使いこなして
みよう!
@Posaune
自己紹介
•まえかわ ひろし a.k.a @Posaune
•#京アジャ
•#検これ
•MS MVP for Visual Studio ALM
•(検閲削除)
今日話さないこと
•Gitの細かいコマンドの使い方
•「逆引きGit入門」
•「Gitポケットリファレンス」
•HookScript
•使えたら超便利
•GitHubもろもろ
•moririringさんので完璧のはず
•Github Pagesも便利よ。
•Github的なるものの代替手段
•Gitlabo
•gitbucket
学習リソース
(オフライン)
学習リソース
(オンライン)
•Lean Git Branching
•http://pcottle.github.io/learnGitBranchin
g/
さて、Gitでできること
理解してもらえましたか??
Git使ってみようと思った人?
僕がお話しすること
GitをもっとGitらしく活用
するための「きっかけ」
キーワードは・・・
歴 史 改 変
歴史改変ツール Git
「そんな『歴史改変』なんて
大げさな・・・」
なにそれこわい
大丈夫、こわくないよ!
(わかって使えば)
Git =
Git = ChangeSetの集合
ChangeSet
- 追加
- 削除
- 変更
Git =
自由に操作できるChangeSetの集合
差替え
あるチェンジセットを別のものに
書き換える
挿入
あるチェンジセットを間に
差し込む
削除
あるチェンジセットを消し去る
入替
チェンジセットの順番を
入れ替える
結合
複数のチェンジセットを
統合する
・・・・・・
それで、何が嬉しいの??
便利な場面を考えてみよう
例えば、こんなとき。
うおー、Typoった…
あああ、追加もれがぁ…
やっべ、個人的なメモまでコミットしちゃったよ…
差替え
うおー、Typoった
…
あああ、追加もれがぁ…
やっべ、個人的なメモまでコミットしちゃったよ…
git commit –amend
git rebase
修正しとこ。
続いて、こういうときも
このコードをベース
に開発してよ
拝承
ごめん、渡した
コード古かった
ファッ!?
しゃーない、ここに追加の
コミットおいて、rebase、
と。
挿入 git checkout
git add
git rebase
・・・ちょっとはイメージ
湧きました?
さて、他にも使いどころは
たくさんあるんですが、
ちょっと脱線。
歴史改変、といえば・・・?
平 行 世 界
Git =
平行世界を持ったChangeSetの
集合
平行世界歴史改変ツール Git
平行世界:ブランチって?
平行世界
平行世界
2つのChangeSetが適用された世界
1つのChangeSetが適用された世界
ブランチ:
ChangeSetの分岐に過ぎない
ブランチに特有のコマンド
分岐
あるチェンジセット以降に
平行世界を作る
git branch
git checkout -b
合流
ある平行世界の変更を取り込む
git merge
差替え
平行世界の出発点を差替える
git rebase
差替え
平行世界の出発点を差替える
あとはほとんど一緒!
ブランチの使いどころ
どういうときに
ブランチ=平行世界を使う?
例えば・・・
よーし、新しい機能
実装だー!
んんん・・・。手詰まり。
別のやろっと♪
ベース 新機能1 新機能1
新機能2 新機能2
なんかカオス
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
トピックブランチ
他にも・・・
よし、新機能開発だ!
拝承
既存機能で
バグ出たぞゴルァ
ファッ!?
ベース 新機能 新機能
バグ修正 バグ修正
目的が混ざる・・・
新機能 新機能
バグ修正 バグ修正
平行世界で対処しよう!
ベース
新機能 新機能
バグ修正 バグ修正
平行世界で対処しよう!
ベース
新機能 新機能
バグ修正 バグ修正
平行世界で対処しよう!
ベース
Hotfixブランチ
まとめると・・・
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
バグ修正 バグ修正Hotfixブランチ
トピックブランチ
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
バグ修正 バグ修正Hotfixブランチ
リリースブランチ
トピックブランチ
ベース
新機能1 新機能1
新機能2 新機能2
平行世界で対処しよう!
バグ修正 バグ修正Hotfixブランチ
リリースブランチ
トピックブランチ
開発ブランチ
参考: git-flow
まぁここまでいかなくても。
結論:
やりやすいようにやろう
歴史改変しちゃダメなとき
まとめ(ない)
Gitは「らしく」使わないと
いまいちメリットわからない
「らしく」使うの結構大変
キーワード
歴史改変
平行世界(ブランチ)
とにかくコマンドをいっぱい
打って慣れること!
まずは、トピックブランチから
ベース
新機能1 新機能1
新機能2 新機能2
トピックブランチ
Enjoy Branching!

Gitを使いこなしてみよう!