SlideShare a Scribd company logo
1 of 49
Download to read offline
Gitでやろう。
2014.07.28
オールフェスタ 社内勉強会
この勉強会の狙い
1.Gitの導入メリットを知る
2.基本的な使い方を知る
大きな狙い
それ自体が直接価値を生まない作業を、
ツールの力を使って減らし、
価値を生む作業に全力を注ぐことで、
仕事をもっとたのしくする。
1. 導入のメリット
2. 基本的な仕組みと流れ
3. 実践
アジェンダ
導入のメリット
• ファイル管理が標準化できる
• コードレビューが容易に行える
• 複数人での開発を効率的に行える
ファイル管理を
標準化
AFあるある
別バージョンを作りたいから
違う名前にして保存しよう!
別verファイル:index2.html
元ファイル: index.html
別バージョンを名前をつけて保存
・・・。
_index.html
index_0730.html
index_最新.html
結果、カオス。
index_田所修正.html
indexのコピー.html
0730/index.html
AFあるある
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!
「いつ」
「だれが 」
「どんな目的のために」
「なにをした」をもとに
ファイルを管理できる。
「コミット」
「なにをした」の単位を
「コミット」という。
(あとでまた出てくる)
コミット
コミット
コミット
実際の画面
「ファイル管理にムダに気を使う」
という「直接価値を生まない作業」を
なくす。
コードレビューを
容易に
コードレビュー?
コードレビュー(英: Code review)は、ソフトウェ
ア開発工程で見過ごされた誤りを検出・修正するため
にソースコードの体系的な検査(査読)を行うこと。
ソフトウェア品質を高めると同時に開発スキルの向上
を図ることができる。
- wikipedia
page.css、修正しました!
追加・変更箇所がわからない
AFあるある
(page.cssのどこだよ…)
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!
「なにが追加された」
「なにが削除された 」
「どう変更された」を
とても簡単に確認できる。
実際の画面
実際の画面
変更・追加・削除を
簡単に確認できる
ので、コードレビューを
お互いにもっと活発にやっていきたい
→品質の向上
→スキルの向上
複数人での開発を
効率的に
わーいできた!
同じファイルを同時に編集
AFあるある
・・・。
結果、衝突。
AFあるある
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
・・・。
衝突を避けるために片方が待機
AFあるある
楽しくない
© タイトル:ブラックジャックによろしく 著作者名: 佐藤秀峰 サイト名: 漫画 on web URL: http://mangaonweb.com/
Gitなら!
リポジトリ(ファイル置き場)と
作業ツリー(作業場)が
別になっているので、
同じファイルを
同時に編集しても問題ない。
Gitなら!
競合が起きたら、
起きている箇所を
知らせたうえで、
どのようにするかを
決定できる。
実際の画面
競合の解決
• 自分を相手に合わせる
• 相手を自分に合わせる←トラブルになりやすい
• 両方の変更を確認して手作業で合わせ込む
導入のメリット
• ファイル管理が標準化できる
• コードレビューが容易に行える
• 複数人での開発を効率的に行える
基本的な仕組みと流れ
用語はSourceTreeでの呼び方に準じます。
全体像
リモートリポジトリ
ローカルリポジトリ
インデックス
作業ツリー
他の開発者
いま作業している対象のファイルを
置いておくところ
作業ツリー
ひとまとめにしてコミットしたいファイルを
とりあえず置いておくところ
インデックス
作業ツリー インデックス
ステージ(ング)
コミットしたいファイルを登録すること
リモートリポジトリに送るコミットを
記録する場所
ローカルリポジトリ
インデックス
コミット
「なにをした」の単位を記録すること
ローカルリポジトリ
複数人で共有するリポジトリ
リモートリポジトリ
ローカルリポジトリ
プッシュ
ローカルリポジトリの内容を
リモートリポジトリに送ること
リモートリポジトリ
リモートリポジトリ
プル
プッシュの逆。
リモートリポジトリの内容を
ローカルリポジトリに反映
ローカルリポジトリ
流れは
「郵便を送る際の手順」
に似ている。
郵便 Git
手紙を書く
作業ツリーの
ファイルを編集
封筒に入れる
インデックスに
ステージする
封筒の封をする コミットする
ポストにいれる プッシュする
受け取る プルする
なんとなくの理解でOK。
やってくうちに覚えます。
やってくうちに覚えられない場合は…フフフ…
実践
その前にいったん休憩。
休憩後は実際に触ってみよう。

More Related Content

What's hot

kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールkintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールYuki Okada
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発Yuta Matsumura
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!Yuta Matsumura
 
Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Yoshinori Kawasaki
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめJun Okazaki
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~Yabata Tomomitsu
 
Microsoft Build Recap Community Day
Microsoft Build Recap Community DayMicrosoft Build Recap Community Day
Microsoft Build Recap Community DayShohei Oda
 
ユーザテストのススメ
ユーザテストのススメユーザテストのススメ
ユーザテストのススメakatsuki174
 
Kivy CatalogでKv Languageを知る
Kivy CatalogでKv Languageを知るKivy CatalogでKv Languageを知る
Kivy CatalogでKv Languageを知るDaisuke Saito
 
Hello. Continuous Integration
Hello. Continuous IntegrationHello. Continuous Integration
Hello. Continuous IntegrationYuki Matsumura
 
Herokuトレーニング
HerokuトレーニングHerokuトレーニング
HerokuトレーニングYosuke Murata
 
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Kazushi Kamegawa
 
未知との交信!?Project SignalR
未知との交信!?Project SignalR未知との交信!?Project SignalR
未知との交信!?Project SignalRYuta Matsumura
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化! ichigotake .
 
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!Kazumi IWANAGA
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercariVishal Banthia
 

What's hot (20)

kintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツールkintoneの開発プロセスとプロジェクト管理ツール
kintoneの開発プロセスとプロジェクト管理ツール
 
オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発オルターブースが実践する .NET Core “ガチ” 開発
オルターブースが実践する .NET Core “ガチ” 開発
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!PHPerだってサーバーレスしたい!
PHPerだってサーバーレスしたい!
 
Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話Wantedlyを2年間Herokuで運用した話
Wantedlyを2年間Herokuで運用した話
 
PyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめPyconJP2017 Kivyによるアプリケーション開発のすすめ
PyconJP2017 Kivyによるアプリケーション開発のすすめ
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
 
Microsoft Build Recap Community Day
Microsoft Build Recap Community DayMicrosoft Build Recap Community Day
Microsoft Build Recap Community Day
 
ユーザテストのススメ
ユーザテストのススメユーザテストのススメ
ユーザテストのススメ
 
UnitTest
UnitTestUnitTest
UnitTest
 
Kivy CatalogでKv Languageを知る
Kivy CatalogでKv Languageを知るKivy CatalogでKv Languageを知る
Kivy CatalogでKv Languageを知る
 
Hello. Continuous Integration
Hello. Continuous IntegrationHello. Continuous Integration
Hello. Continuous Integration
 
【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
 
Herokuトレーニング
HerokuトレーニングHerokuトレーニング
Herokuトレーニング
 
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
 
未知との交信!?Project SignalR
未知との交信!?Project SignalR未知との交信!?Project SignalR
未知との交信!?Project SignalR
 
First git ops
First git opsFirst git ops
First git ops
 
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!	[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
 
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!
 
Android e2e testing at mercari
Android e2e testing at mercariAndroid e2e testing at mercari
Android e2e testing at mercari
 

Similar to オールフェスタ Git勉強会資料 (public)

[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...de:code 2017
 
Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tipsMari Miyakawa
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会kunimiya
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料Kenji Takei
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
Ignite ui 2012 最新情報 jQuery UI 編
Ignite ui 2012 最新情報 jQuery UI 編Ignite ui 2012 最新情報 jQuery UI 編
Ignite ui 2012 最新情報 jQuery UI 編Daizen Ikehara
 
Oprol_Engine_pitch_v1_final
Oprol_Engine_pitch_v1_finalOprol_Engine_pitch_v1_final
Oprol_Engine_pitch_v1_finalRyotaNishimine
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用CROOZ, inc.
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Atsushi Nakamura
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意MakotoItoh
 
Delphi Plug-ins and Components for dummies
Delphi Plug-ins and Components for dummiesDelphi Plug-ins and Components for dummies
Delphi Plug-ins and Components for dummiesHikaru Fukushi
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方hibiki443
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会Shinya Kinoshita
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用賢次 海老原
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 

Similar to オールフェスタ Git勉強会資料 (public) (20)

Git
GitGit
Git
 
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
 
Office365最新動向と運用管理tips
Office365最新動向と運用管理tipsOffice365最新動向と運用管理tips
Office365最新動向と運用管理tips
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
Ignite ui 2012 最新情報 jQuery UI 編
Ignite ui 2012 最新情報 jQuery UI 編Ignite ui 2012 最新情報 jQuery UI 編
Ignite ui 2012 最新情報 jQuery UI 編
 
Oprol_Engine_pitch_v1_final
Oprol_Engine_pitch_v1_finalOprol_Engine_pitch_v1_final
Oprol_Engine_pitch_v1_final
 
Git&GitHub入門
Git&GitHub入門Git&GitHub入門
Git&GitHub入門
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意
 
Delphi Plug-ins and Components for dummies
Delphi Plug-ins and Components for dummiesDelphi Plug-ins and Components for dummies
Delphi Plug-ins and Components for dummies
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
ZendStudioのご紹介
ZendStudioのご紹介ZendStudioのご紹介
ZendStudioのご紹介
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 

オールフェスタ Git勉強会資料 (public)