Upload
hideaki-honda
View
1.191
Download
0
Embed Size (px)
Citation preview
はじめてのGit & GitHubのすすめ
Hideaki Honda
この資料の目的と説明内容
[資料の目的]
Git、GitHubとは何かを知ってもらうことを目的としています。
インストールやコマンド等による操作の説明は含んでおりません。
[説明の内容]
Gitの概要、背景、特徴
Gitの人気、採用実績
分散管理について(集中管理型と分散管理型)
Git以外の分散管理型VCS
Gitが使えるコードホスティングサービス
GitHubの概要など
Page 2
Git とは
Git(ギット)はバージョン管理システムの1つです。
(version control system, VCS)
バージョン管理システムとは、ソフトウェア開発において
ソースコードを管理するためのシステムです。
ソースコードの変更履歴を保管することができて、
過去の状態や変更内容を確認したり復元したりすることが容易で、
今日のソフトウェア開発では無くてはならないものです。
Page 3
Git 背景と特徴
背景
2005年、Linuxカーネルのソースコード管理を目的として、
Linuxの生みの親、リーナス・トーバルズによって開発されました。
特徴
Gitは、オープンソースであり、無償で使用することが出来ます。
また、分散管理型という方式でソースコードを管理します。
Page 4
Git の人気は?
Page 5
以下のグラフは、Google検索のトレンドを表しています。この結果が、現場での普及度とイコールにはなりませんが、世の中の関心が高まっていることは想像がつきます。svnとcvsはまだまだ安定して使われていますが、Gitはこれからますます右肩上がりに伸びていくのではないでしょうか。
□Google検索のトレンドを表したグラフ
Git 採用実績
以下はGitを使用している会社またはプロジェクトの一覧です。
特に、OSSプロジェクトでの採用が増えています。
Page 6
GoogleFacebookMicrosoftTwitterAndroidLinuxRuby on RailsQt
LinkedInNetflixPerlPostgreSQLGNOMEeclipseKDEX.Org
Git 分散管理とは-用語の説明_1
Page 7
以降の説明のなかに出てくる用語の説明です。
同じ言葉でも、svnとGitでは意味が変わってくるため注意が必要です。
[用語]
リポジトリ
1つのプロジェクト(プログラムとして)に対して1つのリポジトリを持つのが
一般的。ソースの変更情報を持つデータ群。
メインリポジトリ
リモートリポジトリとも呼ばれる。
サーバに配置するリポジトリを指す。
ローカルリポジトリ
作業者のローカルマシンに配置するリポジトリを指す。svnでは存在しない。
作業コピー
ワーキングコピー、ワーキングツリーとも呼ばれる。
リポジトリの内容を作業者のローカルマシンに展開したもの。
Git 分散管理とは-用語の説明_2
Page 8
commit(コミット)
svnの場合、メインリポジトリに作業コピーの変更内容を反映することを指す
Gitの場合、ローカルリポジトリに作業コピーの変更内容を反映することを指す
checkout(チェックアウト)
svnの場合、メインリポジトリの内容を作業コピーに展開・反映することを指す
Gitの場合、ローカルリポジトリの内容を作業コピーに展開・反映することを指す
push(プッシュ)
svnには無い操作です。
Gitで、ローカルリポジトリの内容を、メインリポジトリに反映することを指す
clone(クローン)
svnには無い操作です。
Gitで、メインリポジトリをコピーし、ローカルリポジトリを作成することを指す
pull (プル)
svnには無い操作です。
Gitで、メインリポジトリの更新を、ローカルリポジトリに取り込むことを指す
Git 分散管理とは
バージョン管理システムは、大きく以下2つの管理方式があります。
• 集中管理型
採用している主な製品 : CVS、Subversion
• 分散管理型
採用している主な製品 : Git、Mercurial、Bazaar
Gitでは分散管理型を採用しています。
それぞれの特徴を見てみましょう。
Page 9
図1
概要
全てのユーザが1つのメインリポジトリを使用し、
そこにアクセスすることで変更履歴を見たり、
変更内容を反映させることが出来る仕組みです。
メリット
操作そのものは単純なので、比較的習得しやすい
と言えるのではないでしょうか。また、作業
フローも理解しやすいと思います。
デメリット
あえて挙げるならば、サーバがダウンしてしまうと
変更履歴さえも見えなくなってしまうことでしょうか。
Git 分散管理とは-集中管理型について
Page 10
概要
メインリポジトリの他に、ユーザも個々にローカルリポジトリを持ちます。
ローカルリポジトリには、メインリポジトリと同じ情報を持っています。
メリット
サーバにアクセスしなくても、
「状態を戻す」「変更履歴をみる」
などのことが出来ます。また、他人に
影響を与えずに、ローカルリポジトリ
の中で変更を管理することが出来ます。
デメリット
作業フローが柔軟にできるゆえに、
操作が複雑になるかもしれません。
Git 分散管理とは-分散管理型について
Page 11 図1
Git その他の分散管理型VCS
Git以外にも、MercurialやBazaarなど、分散管理型のVCSは
ありますが、Gitが最も人気があるようです。
以下のグラフは、Google検索のトレンドを表しています。
Page 12
Git コードホスティングサービス
自分のソースコードもクラウド上で管理出来る時代です。
Gitが使えるホスティングサービスをピックアップしました。
• GitHub https://github.com/
• BitBucket https://bitbucket.org/
• Assembla https://www.assembla.com/home
• Kiln http://www.fogcreek.com/Kiln/
• Stash http://www.atlassian.com/ja/software/stash/overview
今回はGitHubを取り上げて、以降のページで説明していきます。
Page 13
GitHubは・・・
Gitを使った最もポピュラーなコードホスティングサービスです。
自分のコードを、クラウド上に保管することが出来ます。
基本は無料で利用可能。コードはネット上に公開されますが、
反対に他人のコードも自由に閲覧することが出来ます。
アカウントを有償(7$から)でアップグレードすると、
公開を制限し、プライベート環境で利用することも
可能になります。
[URL]
https://github.com/
GitHub とは_1
Page 14
GitHub とは_2
GitHubには、有名なプロジェクトも数多くホスティング
されています。そのプロジェクトの変更履歴をリアルタイム
で見ることができますし、また、その気があればプロジェクト
に参加することも出来ます。ユーザ同士でフォローすることも
出来ますので、コードでコミュニケーションが取れる
ソーシャルサービスとも言えます。
Page 15
GitHubのユーザアカウントは、開発者向けサイトの認証用ユーザとしても
利用することが出来ます。以下のサイトは、一例になりますが、
こういったところからも、GitHubの利用が進んでいることが分かります。
GitHub こんな場面でも
Page 16
左上: http://qa.atmarkit.co.jp/
左下: https://codeiq.jp/
右上: http://qiita.com/
以上で終了となります。