17
はじめてのGit & GitHubのすすめ Hideaki Honda

Git&GitHub入門

Embed Size (px)

Citation preview

Page 1: Git&GitHub入門

はじめてのGit & GitHubのすすめ

Hideaki Honda

Page 2: Git&GitHub入門

この資料の目的と説明内容

[資料の目的]

Git、GitHubとは何かを知ってもらうことを目的としています。

インストールやコマンド等による操作の説明は含んでおりません。

[説明の内容]

Gitの概要、背景、特徴

Gitの人気、採用実績

分散管理について(集中管理型と分散管理型)

Git以外の分散管理型VCS

Gitが使えるコードホスティングサービス

GitHubの概要など

Page 2

Page 3: Git&GitHub入門

Git とは

Git(ギット)はバージョン管理システムの1つです。

(version control system, VCS)

バージョン管理システムとは、ソフトウェア開発において

ソースコードを管理するためのシステムです。

ソースコードの変更履歴を保管することができて、

過去の状態や変更内容を確認したり復元したりすることが容易で、

今日のソフトウェア開発では無くてはならないものです。

Page 3

Page 4: Git&GitHub入門

Git 背景と特徴

背景

2005年、Linuxカーネルのソースコード管理を目的として、

Linuxの生みの親、リーナス・トーバルズによって開発されました。

特徴

Gitは、オープンソースであり、無償で使用することが出来ます。

また、分散管理型という方式でソースコードを管理します。

Page 4

Page 5: Git&GitHub入門

Git の人気は?

Page 5

以下のグラフは、Google検索のトレンドを表しています。この結果が、現場での普及度とイコールにはなりませんが、世の中の関心が高まっていることは想像がつきます。svnとcvsはまだまだ安定して使われていますが、Gitはこれからますます右肩上がりに伸びていくのではないでしょうか。

□Google検索のトレンドを表したグラフ

Page 6: Git&GitHub入門

Git 採用実績

以下はGitを使用している会社またはプロジェクトの一覧です。

特に、OSSプロジェクトでの採用が増えています。

Page 6

GoogleFacebookMicrosoftTwitterAndroidLinuxRuby on RailsQt

LinkedInNetflixPerlPostgreSQLGNOMEeclipseKDEX.Org

Page 7: Git&GitHub入門

Git 分散管理とは-用語の説明_1

Page 7

以降の説明のなかに出てくる用語の説明です。

同じ言葉でも、svnとGitでは意味が変わってくるため注意が必要です。

[用語]

リポジトリ

1つのプロジェクト(プログラムとして)に対して1つのリポジトリを持つのが

一般的。ソースの変更情報を持つデータ群。

メインリポジトリ

リモートリポジトリとも呼ばれる。

サーバに配置するリポジトリを指す。

ローカルリポジトリ

作業者のローカルマシンに配置するリポジトリを指す。svnでは存在しない。

作業コピー

ワーキングコピー、ワーキングツリーとも呼ばれる。

リポジトリの内容を作業者のローカルマシンに展開したもの。

Page 8: Git&GitHub入門

Git 分散管理とは-用語の説明_2

Page 8

commit(コミット)

svnの場合、メインリポジトリに作業コピーの変更内容を反映することを指す

Gitの場合、ローカルリポジトリに作業コピーの変更内容を反映することを指す

checkout(チェックアウト)

svnの場合、メインリポジトリの内容を作業コピーに展開・反映することを指す

Gitの場合、ローカルリポジトリの内容を作業コピーに展開・反映することを指す

push(プッシュ)

svnには無い操作です。

Gitで、ローカルリポジトリの内容を、メインリポジトリに反映することを指す

clone(クローン)

svnには無い操作です。

Gitで、メインリポジトリをコピーし、ローカルリポジトリを作成することを指す

pull (プル)

svnには無い操作です。

Gitで、メインリポジトリの更新を、ローカルリポジトリに取り込むことを指す

Page 9: Git&GitHub入門

Git 分散管理とは

バージョン管理システムは、大きく以下2つの管理方式があります。

• 集中管理型

採用している主な製品 : CVS、Subversion

• 分散管理型

採用している主な製品 : Git、Mercurial、Bazaar

Gitでは分散管理型を採用しています。

それぞれの特徴を見てみましょう。

Page 9

Page 10: Git&GitHub入門

図1

概要

全てのユーザが1つのメインリポジトリを使用し、

そこにアクセスすることで変更履歴を見たり、

変更内容を反映させることが出来る仕組みです。

メリット

操作そのものは単純なので、比較的習得しやすい

と言えるのではないでしょうか。また、作業

フローも理解しやすいと思います。

デメリット

あえて挙げるならば、サーバがダウンしてしまうと

変更履歴さえも見えなくなってしまうことでしょうか。

Git 分散管理とは-集中管理型について

Page 10

Page 11: Git&GitHub入門

概要

メインリポジトリの他に、ユーザも個々にローカルリポジトリを持ちます。

ローカルリポジトリには、メインリポジトリと同じ情報を持っています。

メリット

サーバにアクセスしなくても、

「状態を戻す」「変更履歴をみる」

などのことが出来ます。また、他人に

影響を与えずに、ローカルリポジトリ

の中で変更を管理することが出来ます。

デメリット

作業フローが柔軟にできるゆえに、

操作が複雑になるかもしれません。

Git 分散管理とは-分散管理型について

Page 11 図1

Page 12: Git&GitHub入門

Git その他の分散管理型VCS

Git以外にも、MercurialやBazaarなど、分散管理型のVCSは

ありますが、Gitが最も人気があるようです。

以下のグラフは、Google検索のトレンドを表しています。

Page 12

Page 13: Git&GitHub入門

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

Page 14: Git&GitHub入門

GitHubは・・・

Gitを使った最もポピュラーなコードホスティングサービスです。

自分のコードを、クラウド上に保管することが出来ます。

基本は無料で利用可能。コードはネット上に公開されますが、

反対に他人のコードも自由に閲覧することが出来ます。

アカウントを有償(7$から)でアップグレードすると、

公開を制限し、プライベート環境で利用することも

可能になります。

[URL]

https://github.com/

GitHub とは_1

Page 14

Page 15: Git&GitHub入門

GitHub とは_2

GitHubには、有名なプロジェクトも数多くホスティング

されています。そのプロジェクトの変更履歴をリアルタイム

で見ることができますし、また、その気があればプロジェクト

に参加することも出来ます。ユーザ同士でフォローすることも

出来ますので、コードでコミュニケーションが取れる

ソーシャルサービスとも言えます。

Page 15

Page 16: Git&GitHub入門

GitHubのユーザアカウントは、開発者向けサイトの認証用ユーザとしても

利用することが出来ます。以下のサイトは、一例になりますが、

こういったところからも、GitHubの利用が進んでいることが分かります。

GitHub こんな場面でも

Page 16

左上: http://qa.atmarkit.co.jp/

左下: https://codeiq.jp/

右上: http://qiita.com/

Page 17: Git&GitHub入門

以上で終了となります。