SlideShare a Scribd company logo
1 of 53
Download to read offline
バージョン管理とgit
2013/11/21(木) @21cafe
自己紹介
神速 @sinsoku_listy

git
バージョン
管理

git
なぜ必要?
履歴が見られる

いつ

誰が

理由: XXX のバグを修正

どこを
過去の状態に戻せる
複数人で作業ができる
マージ
(統合)
複数バージョンを管理できる

バージョン 2系

バージョン 1系
実験的な作業を行える

開発版

安定版
実験的な作業を行える

安定版
実験的な作業を行える

開発版

安定版
ファイルを安心して変更できる
どんな仕組み?
作業ディレクトリ
Project

src

リポジトリ
README
作業ディレクトリ

Project

src
リポジトリ
README

save 1
作業ディレクトリ

Project

src
リポジトリ
README

save 1

save 2
作業ディレクトリ

Project

src
リポジトリ
README

save 1

save 2

save 3
バージョン
管理

git
git の特徴

分散型

インデックス

ブランチ・タグ
履歴の作成

集中型(svn)

作業コピーの
更新

リポジトリ

作業コピー

README

Hello.java

README

Hello.java
rev: 3

README
の編集

rev: 2

Hello.java
の実装

rev: 1

README
の追加

集中型(svn)

リポジトリ
履歴の作成

分散型(git)

作業コピーの
更新

リポジトリ

作業コピー

README

Hello.java
履歴の作成

分散型(git)

作業コピー
の更新
履歴の送信
履歴の受信
作業コピー

リポジト
リ

リポジト
リ
履歴の作成

中央

作業コピー
の更新

分散型(git)
リポジトリ

履歴の送信
履歴の受信
作業コピー

ローカル
リポジトリ

リポジトリ
中央
リポジトリ
rev:
1af9b

リポジトリ

rev:
1af9b

README
の追加

README
の追加
中央
リポジトリ
rev:
1af9b

リポジトリ

rev:
1af9b

README
の追加

README
の追加

リポジトリ

rev:
1af9b

README
の追加
中央
リポジトリ
rev:
1af9b

rev:
5fde8

READMEの
編集

rev:
1af9b

README
の追加

リポジトリ

リポジトリ

README
の追加

rev:
9d6aa

Hello.java
の実装

rev:
1af9b

README
の追加
中央

rev:
5fde8

README
の編集

rev:
9d6aa

Hello.java
の実装

リポジトリ
rev:
1af9b

rev:
5fde8

READMEの
編集

rev:
1af9b

README
の追加

リポジトリ

リポジトリ

README
の追加

rev:
9d6aa

Hello.java
の実装

rev:
1af9b

README
の追加
rev: 5fde8?
中央

rev:
5fde8

README
の編集

rev:
9d6aa

Hello.java
の実装

リポジトリ
rev:
1af9b

rev:
5fde8

READMEの
編集

rev:
1af9b

README
の追加

リポジトリ

リポジトリ

README
の追加

rev:
9d6aa

Hello.java
の実装

rev:
1af9b

README
の追加
rev: 3

README
の編集

rev: 2

Hello.java
の実装

rev: 1

README
の追加

集中型(svn)

リポジトリ
コミット内容(日時、変更者 など)

SHA-1 変換器

16進数40桁
39fde84ab553783eab2b0443b7fe7300eb65119d
コミット内容(日時、変更者 など)

SHA-1 変換器

16進数40桁
39fde84ab553783eab2b0443b7fe7300eb65119d
git の特徴

分散型

インデックス

ブランチ・タグ
作業
ディレクトリ

・
・
・

インデックス

リポジトリ
作業
ディレクトリ

インデックス

add

・
・
・

リポジトリ
作業
ディレクトリ

インデックス

リポジトリ

commit

・
・
・
作業
ディレクトリ

インデックス

add

・
・
・

リポジトリ
作業
ディレクトリ

インデックス

リポジトリ

commit

・
・
・
なぜインデックスが
あるのか?
行単位でのコミット

コミット前の確認
git の特徴

分散型

インデックス

ブランチ・タグ
ブランチ
stable

rev: 1af9b

rev: 5fde8

$ git branch stable 5fde8
$ git checkout stable
ブランチ
stable

rev: 1af9b

rev: 5fde8

$ (ファイルの変更)
$ git add
ブランチ
stable

rev: 1af9b

rev: 5fde8

$ git commit -m “update”

rev: 9d6aa
3種類のタグ

軽量タグ

アノテーション
付きタグ

署名付きタグ
軽量タグ

rev: 1af9b

rev: 5fde8
v1.0.0

$ git show 5fde8
$ git show v1.0.0
軽量タグ

rev: 1af9b

rev: 5fde8

rev: 9d6aa
v1.0.0

$ git show 5fde8
$ git show v1.0.0
/

om
github.c
https://
最も有名なGitのホスティングサービス
● 公開リポジトリ無制限
(非公開は有料)
● Web上でファイルが見られる
● 使い易い画面
● Pull Request(プルリクエスト)

Octocat
git 関連ページの紹介
● Git公式サイト http://git-scm.com/
● msysgit - Git for Windows
https://code.google.com/p/msysgit/
● GitHub https://github.com/
ご清聴ありがとうございました

More Related Content

What's hot

Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 
Git lev 3 -おひとりさまでブランチを-
Git lev 3 -おひとりさまでブランチを-Git lev 3 -おひとりさまでブランチを-
Git lev 3 -おひとりさまでブランチを-Kentarou Kurashige
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」Taisuke Inoue
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみたhiroyuki koga
 
バージョン管理システム比較資料
バージョン管理システム比較資料バージョン管理システム比較資料
バージョン管理システム比較資料suzzsegv
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回NaohiroHamada
 
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編Akihiko Shirai
 
Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Kentarou Kurashige
 
20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会Toshikazu Seto
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv dockerikdysfm
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンドYUKI Kaoru
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 

What's hot (20)

Gitの勉強 紹介編-
Gitの勉強 紹介編-Gitの勉強 紹介編-
Gitの勉強 紹介編-
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
Git lev 3 -おひとりさまでブランチを-
Git lev 3 -おひとりさまでブランチを-Git lev 3 -おひとりさまでブランチを-
Git lev 3 -おひとりさまでブランチを-
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Git入門
Git入門Git入門
Git入門
 
Git flowについてまとめてみた
Git flowについてまとめてみたGit flowについてまとめてみた
Git flowについてまとめてみた
 
バージョン管理システム比較資料
バージョン管理システム比較資料バージョン管理システム比較資料
バージョン管理システム比較資料
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回
 
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編KinectとC#を用いた実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
KinectとC#を用いた 実践的VRアプリ開発 第2回 2015/10/13 Github CLI編
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
Git lev 4 -みんなでGit-
Git lev 4 -みんなでGit-Git lev 4 -みんなでGit-
Git lev 4 -みんなでGit-
 
Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-Git lev 1-おひとりさま用-
Git lev 1-おひとりさま用-
 
20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会20121013_GIS学会FOSS4G分科会
20121013_GIS学会FOSS4G分科会
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv docker
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
Gitのよく使うコマンド
Gitのよく使うコマンドGitのよく使うコマンド
Gitのよく使うコマンド
 
Gitの設定
Gitの設定Gitの設定
Gitの設定
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 

Viewers also liked

Git天空闘技場_ハンズオン
Git天空闘技場_ハンズオンGit天空闘技場_ハンズオン
Git天空闘技場_ハンズオンsinsoku listy
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDockerMasahiro NAKAYAMA
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Viewers also liked (7)

Git天空闘技場_ハンズオン
Git天空闘技場_ハンズオンGit天空闘技場_ハンズオン
Git天空闘技場_ハンズオン
 
DVCSとGitの基礎
DVCSとGitの基礎DVCSとGitの基礎
DVCSとGitの基礎
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Similar to バージョン管理とGit

バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアルRyo Igarashi
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 Hiro Yoshioka
 
git入門(講義っぽく)
git入門(講義っぽく)git入門(講義っぽく)
git入門(講義っぽく)kataware
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルComputational Materials Science Initiative
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Tetsurou Yano
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用CROOZ, inc.
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用賢次 海老原
 
Git SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しようGit SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しよう富士見研究所
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会kunimiya
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門Keisuke Oohata
 

Similar to バージョン管理とGit (20)

バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアル
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
Git
GitGit
Git
 
Gitのいろは
GitのいろはGitのいろは
Gitのいろは
 
git入門(講義っぽく)
git入門(講義っぽく)git入門(講義っぽく)
git入門(講義っぽく)
 
Git&GitHub入門
Git&GitHub入門Git&GitHub入門
Git&GitHub入門
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
 
Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回Stylez GitLab勉強会 第1回
Stylez GitLab勉強会 第1回
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 
Git SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しようGit SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しよう
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
Bazaar
BazaarBazaar
Bazaar
 
Git overview (v 0.96)
Git overview (v 0.96)Git overview (v 0.96)
Git overview (v 0.96)
 

More from sinsoku listy

Rails6にいつ上げるか?
Rails6にいつ上げるか?Rails6にいつ上げるか?
Rails6にいつ上げるか?sinsoku listy
 
Rails Testing on Fargate
Rails Testing on FargateRails Testing on Fargate
Rails Testing on Fargatesinsoku listy
 
Search Form for Rails
Search Form for RailsSearch Form for Rails
Search Form for Railssinsoku listy
 
自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-sinsoku listy
 
毎日gemをアップグレードする生活
毎日gemをアップグレードする生活毎日gemをアップグレードする生活
毎日gemをアップグレードする生活sinsoku listy
 
Rails 5.2: credentials
Rails 5.2: credentialsRails 5.2: credentials
Rails 5.2: credentialssinsoku listy
 
Randomly Failing Specs
Randomly Failing SpecsRandomly Failing Specs
Randomly Failing Specssinsoku listy
 
技術的負債とリファクタリング
技術的負債とリファクタリング技術的負債とリファクタリング
技術的負債とリファクタリングsinsoku listy
 
ES2015のカバレッジ計測
ES2015のカバレッジ計測ES2015のカバレッジ計測
ES2015のカバレッジ計測sinsoku listy
 
CSSのカバレッジツール
CSSのカバレッジツールCSSのカバレッジツール
CSSのカバレッジツールsinsoku listy
 
本当にあった怖い話 7つの幽霊 7つの成仏
本当にあった怖い話 7つの幽霊 7つの成仏本当にあった怖い話 7つの幽霊 7つの成仏
本当にあった怖い話 7つの幽霊 7つの成仏sinsoku listy
 
Awsでwindowsゲームを動かす
Awsでwindowsゲームを動かすAwsでwindowsゲームを動かす
Awsでwindowsゲームを動かすsinsoku listy
 
Action pack variantsの話
Action pack variantsの話Action pack variantsの話
Action pack variantsの話sinsoku listy
 
LT_Gitのfast fowardと継続的デリバリー
LT_Gitのfast fowardと継続的デリバリーLT_Gitのfast fowardと継続的デリバリー
LT_Gitのfast fowardと継続的デリバリーsinsoku listy
 
20101001 5分でわかるtrac pluginの作り方_slideshare
20101001 5分でわかるtrac pluginの作り方_slideshare20101001 5分でわかるtrac pluginの作り方_slideshare
20101001 5分でわかるtrac pluginの作り方_slidesharesinsoku listy
 

More from sinsoku listy (17)

Rails6にいつ上げるか?
Rails6にいつ上げるか?Rails6にいつ上げるか?
Rails6にいつ上げるか?
 
Rails Testing on Fargate
Rails Testing on FargateRails Testing on Fargate
Rails Testing on Fargate
 
Search Form for Rails
Search Form for RailsSearch Form for Rails
Search Form for Rails
 
ENGINEER WORK!!
ENGINEER WORK!!ENGINEER WORK!!
ENGINEER WORK!!
 
自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-自己修復的なインフラ -Self-Healing Infrastructure-
自己修復的なインフラ -Self-Healing Infrastructure-
 
毎日gemをアップグレードする生活
毎日gemをアップグレードする生活毎日gemをアップグレードする生活
毎日gemをアップグレードする生活
 
Rails 5.2: credentials
Rails 5.2: credentialsRails 5.2: credentials
Rails 5.2: credentials
 
Randomly Failing Specs
Randomly Failing SpecsRandomly Failing Specs
Randomly Failing Specs
 
技術的負債とリファクタリング
技術的負債とリファクタリング技術的負債とリファクタリング
技術的負債とリファクタリング
 
Swift on Docker
Swift on DockerSwift on Docker
Swift on Docker
 
ES2015のカバレッジ計測
ES2015のカバレッジ計測ES2015のカバレッジ計測
ES2015のカバレッジ計測
 
CSSのカバレッジツール
CSSのカバレッジツールCSSのカバレッジツール
CSSのカバレッジツール
 
本当にあった怖い話 7つの幽霊 7つの成仏
本当にあった怖い話 7つの幽霊 7つの成仏本当にあった怖い話 7つの幽霊 7つの成仏
本当にあった怖い話 7つの幽霊 7つの成仏
 
Awsでwindowsゲームを動かす
Awsでwindowsゲームを動かすAwsでwindowsゲームを動かす
Awsでwindowsゲームを動かす
 
Action pack variantsの話
Action pack variantsの話Action pack variantsの話
Action pack variantsの話
 
LT_Gitのfast fowardと継続的デリバリー
LT_Gitのfast fowardと継続的デリバリーLT_Gitのfast fowardと継続的デリバリー
LT_Gitのfast fowardと継続的デリバリー
 
20101001 5分でわかるtrac pluginの作り方_slideshare
20101001 5分でわかるtrac pluginの作り方_slideshare20101001 5分でわかるtrac pluginの作り方_slideshare
20101001 5分でわかるtrac pluginの作り方_slideshare
 

バージョン管理とGit