SlideShare a Scribd company logo
1 of 118
Download to read offline
はじめよう

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 でまたコミット
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
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

What's hot

バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフローadd20
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門Tomohiko Himura
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドktateish
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?naoki koyama
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみたhiroyuki koga
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選Takuya Ueda
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Tomohisa Kusukawa
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザktateish
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ SEGADevTech
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門Tadahiro Ishisaka
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜aha_oretama
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 
「仕訳重複チェック機能」のご案内
「仕訳重複チェック機能」のご案内「仕訳重複チェック機能」のご案内
「仕訳重複チェック機能」のご案内Money Forward, Inc.
 
プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」Yoshinori Yamanouchi
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Hidehisa Matsutani
 

What's hot (20)

バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
 
やりなおせる Git 入門
やりなおせる Git 入門やりなおせる Git 入門
やりなおせる Git 入門
 
コンセプトから理解するGitコマンド
コンセプトから理解するGitコマンドコンセプトから理解するGitコマンド
コンセプトから理解するGitコマンド
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
 
Gitの便利ワザ
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
劇的改善 Ci4時間から5分へ〜私がやった10のこと〜
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
「仕訳重複チェック機能」のご案内
「仕訳重複チェック機能」のご案内「仕訳重複チェック機能」のご案内
「仕訳重複チェック機能」のご案内
 
プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
 
Jenkins と groovy
Jenkins と groovyJenkins と groovy
Jenkins と groovy
 

Similar to はじめようGit

ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級Kouji Matsui
 
LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)You&I
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~InnovationSprint2011
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ将 高野
 
LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)You&I
 
人と向き合うプロトタイピング
人と向き合うプロトタイピング人と向き合うプロトタイピング
人と向き合うプロトタイピングwariemon
 
Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Kazuki Shingai
 

Similar to はじめようGit (8)

ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級
 
LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)LT司会資料(わんくま同盟名古屋勉強会#22)
LT司会資料(わんくま同盟名古屋勉強会#22)
 
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
イノベーションスプリント2011 infragisticsにおける世界分散アジャイル開発事例~ communication matters ~
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
Tddのすゝめ
TddのすゝめTddのすゝめ
Tddのすゝめ
 
LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)LT司会資料(わんくま同盟名古屋勉強会#21)
LT司会資料(わんくま同盟名古屋勉強会#21)
 
人と向き合うプロトタイピング
人と向き合うプロトタイピング人と向き合うプロトタイピング
人と向き合うプロトタイピング
 
Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】
 

Recently uploaded

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Recently uploaded (8)

Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

はじめようGit