狠狠撸

狠狠撸Share a Scribd company logo
はじめよう

For Subversionユーザ

2013/10/24
シナジーマーケティング(株)
河野 健太朗
アジェンダ
1.なんで Git ?
2.Git の基本
3.基本のサイクル
4.ブランチ/タグ
5.ワークフロー
なんで

?
メリット1
自分のタイミングで
コミットできる!
なんで?

? 分散型なので、コミットし
?

ても、すぐには他の人に影
響を与えないから
SVNだと気を遣いますよ
ね?
メリット2
コードレビューが
やりやすくなる!
なんで?

? コミット頻度が適切になれ
?

ば、コードレビューの負担
も大きくならない
SVNだと、まとまってガツ
ンとコミットすることあり
ますよね?
メリット3
継続的○○が、
やりやすくなる!?
なんで?

? ブランチ使いやすいから、
ブランチごとにテスト回し
たりとかできる???
でも、git は
難しいよね…?
でも、git は
というか、
難しいよね…?
運用の問題では?
そうですね!!!
でも、SVNだと…

? コミットに気を使う…
? ブランチ使いにくい…
? マージがしんどい…
(??ω?`)??????
ところで…

世の中の流れ
リポジトリサービスの状況

? GitHub
2008年4月 最初からgit
? GoogleCode
2011年7月 gitに対応
? Bitbucket
o

o

o

2011年10月 gitに対応
git 流行ってます
SVN使って良いのは

昭和生まれまで
だよね~
( *?艸`)????
新卒に煽られる日が
くるかもしれない…?
と、言うわけで
はじめよう!!!
アジェンダ
1.なんで Git ?
2.Git の基本
3.基本のサイクル
4.ブランチ/タグ
5.ワークフロー
の基本
gitの基本
1.分散型のリポジトリ
2.3つの領域
3.コミットグラフ
1. 分散型リポジトリ
SVNは集中型
ワーキングコピー
リポジトリ

add, delete
checkout
commit
update
SVNは集中型
ワーキングコピー
リポジトリ

checkout
この部分が自分のモノ
commit
update
知ってるよ!
それくらい!
gitは分散型
リポジトリ

ワーキングコピー

リポジトリ
checkout
commit
merge
clone
push
fetch

add, rm
gitは分散型
リポジトリ

ワーキングコピー

リポジトリ

clone
push
fetch

この部分が自分のモノ
分散型のメリット

? ローカルにリポジトリがあるの
で
o オフラインで作業可能
o コミットは他のリポジトリに
影響しない

? バックアップが簡単
分散型のデメリット

? ローカルにリポジトリがあるの
で
o コミットは他のリポジトリに
影響しない
↓
o 共有リポジトリと同期が必要
gitは分散型
リポジトリ

ワーキングコピー

リポジトリ

add, rm

同期が必要
2. 3つの領域
3つの領域
Gitには3つの領域があります

? ワーキングディレクトリ
? インデックス
? リポジトリ
3つの領域
ワーキングディレクトリ

作業するとこ

インデックス

?

リポジトリ

履歴のとこ
3つの領域
ワーキングディレクトリ

インデックス

リポジトリ

コミット対象を管理するとこ
コミット前に
コミット対象を
整理できます
変更しただけでは
コミット対象に
ならない
えっ?
コミット対象は
インデックスに追加
しないといけない
えっ?
えっ?

Subversionだと
やってくれるよ!
そうですね!!!
gitにもあります
楽する方法
後ほど…
3. コミットグラフ
コミットグラフ
コミットがつながってできる
コミットグラフ
コミットがつながってできる
コミット

A
コミットグラフ
コミットがつながってできる
コミット

コミット

A

B
コミットグラフ
コミットがつながってできる
コミット

コミット

コミット

A

B

C
各コミットは、
親のコミットを
参照している
履歴の順番は
リビジョン番号を
見ても分かりません
えっ?
最初のコミットは?

コミット

コミット

コミット

d43a39

0b04a90

8c862c0
最初のコミットは?
一番右でした
コミット

コミット

コミット

C

B

A

d43a39

0b04a90

8c862c0
コミットグラフ
大事ですね
どうやって
見るの?
GUIのツールとか
コマンドで!
ちょっと休憩

質問タイム
アジェンダ
1.なんで Git ?
2.Git の基本
3.基本のサイクル
4.ブランチ/タグ
5.ワークフロー
基本のサイクル
上:git
下:SVN
リポジトリのコピー
git clone
リポジトリのチェックアウト

svn checkout
リポジトリの更新
git pull
ワーキングコピーの更新

svn update
編集作業(一部)
git add, git rm
編集作業(一部)

svn add, svn delete
コミット対象にする
git add
(ステージングという)
コミット対象から外す

git reset
コミット
git commit
コミット

svn commit ?
他リポジトリに反映
git push
コミット

svn commit ?
git commit
+
git push
svn commit
詳細は
Git Cheat Sheet
http://www.textdrop.net/wp-content/uploads/git-cheatsheet-ja.pdf
ちょっと待て!
楽する方法は?
そうでした!!!
git commit -a
ステージングを
省略して
コミットできる!
積極的に
使って良いと
私は思います
良くない
git add .
git commit
良い
git commit -a
やめよう git add .
ステージングをめんどくさがって、
git add .
を実行すると、不要なファイルがス
テージングされてしまうこともある。
git commit –a
はトラッキングされてるものだけ、コ
ミット対象。(svn commit と同等)
アジェンダ
1.なんで Git ?
2.Git の基本
3.基本のサイクル
4.ブランチ/タグ
5.ワークフロー
ブランチ/タグ
復習
コミットはつながっていく
コミット

コミット

コミット

A

B

C
masterブランチ
デフォルトのブランチ

A
master
masterブランチ
デフォルトのブランチ

A

B
master
masterブランチ
デフォルトのブランチ

A

B

C
master
ブランチは
コミットへの
ポインタ
ブランチ作成
master から topic を作成
topic

A

B

C
master
ポインタが増えただけ
ブランチで作業
topic ブランチでコミット
topic

B

C
master

D
枝分かれしない!
ブランチで作業
master でコミット
topic

B

C

D
E
master
各ブランチで
コミットされて
枝分かれする
ブランチで作業
それぞれ進む
topic

D

G

H

E

F

I
master
ブランチのマージ
master で topic をマージ
topic

G

H

F

I

J
master
迟辞辫颈肠はそのまま
ブランチで作業
topic でまたコミット
topic

G

H

K

F

I

J
master
ブランチは
コミットへの
ポインタ
大事なことなので2回言いました
HEAD
topic にいるとき

HEAD
topic

D

G

H

E

F

I
master
HEAD
master にいるとき

topic

D

G

H

E

F

I
master
HEAD
贬贰础顿は动く
タグもポインタ
コミットJにタグ付け

topic

G

H

K

F

I

J
master
v1
まだ、
よくわかんない…
そうですね!!!
こわくないgit
を見ましょう
http://www.slideshare.net/kotas/git-15276118
こわくないgit
を見ましょう
http://www.slideshare.net/kotas/git-15276118

すごく良くわかる!
アジェンダ
1.なんで Git ?
2.Git の基本
3.基本のサイクル
4.ブランチ/タグ
5.ワークフロー
ワークフロー
いろいろあるよ

? git flow
? github flow
? git daily
とか色々
大事なこと

? master は安定版
? 開発はトピックブランチ
? トピックブランチの
生存期間は短め
ブランチを
積極的に使う
でも、
マージは不安…
そうですね!!!
3-way マージ
共通の親も使う

W,X,Yを比較

W

X
Y

Z
贤いらしいです…
まとめ

? gitとSVN違いますね
? ローカルリポジトリ最高
? ブランチはポインタ
? masterは安定版
今日話せてないこと

? git の設定
? push/pull
? 履歴のこと
? サブコマンド
奥が深いです…
練習できます
Code School – Try Git
http://try.github.io//levels/1/challenges/1
参考文献
Pro Git (日本語)
http://git-scm.com/book/ja/
おわり
ありがとうございました
技術情報サイトやってます

TECHSCORE
http://www.techscore.com/
リファレンス系多い

TECHSCORE BLOG
http://www.techscore.com/blog/
それぞれ自由に書いています

More Related Content

はじめよう骋颈迟