GitHubとは
VCSの仕組みを利用したwebサービスの一種です。
VCSとは
VCSは”Version Control System”の略で、ファイルやディレクトリのバージョンを管理するためのシステムのことを言います。
また、ファイルなどのバージョンを管理するデータベースを”リポジトリ”といいます。
VCSの仕組み
VCSの仕組みは大きく分けて2種類あります。
- 集中型バージョン管理
サーバーにある一つのリポジトリを複数人で使用するものです。
- 分散型バージョン管理
各利用者のローカルにリポジトリを複製できます。サーバー上の利用者全員の共有のものを”リモートリポジトリ”、各利用者のローカル上のものを”ローカルリポジトリ”といいます。
Gitの使い方
Gitは分散型バージョン管理の一種です。
基本操作
-
clone(クローン)
ローカルにリモートリポジトリの複製を作ります。
-
add(アド)
ローカル上での変更点をcommit(コミット)の対象とします。
-
commit(コミット)
addされたものをローカルリポジトリに登録します。
-
push(プッシュ)
更新されたローカルリポジトリの情報をリモートリポジトリに反映させます。
-
pull(プル)
他の利用者が更新したリモートリポジトリの情報をローカルリポジトリに反映させます。
1でローカルリポジトリを作った後、2~5を繰り返し行い、作業が進行していきます。
branch(ブランチ)機能
例えば、機能ごとにチームを分けて開発していた場合、ほかの機能が出来上がってから自分の機能を追加させた方が効率的だなぁってことがあるかと思います。
そういう時に、以下のbranch機能が役立ちます!
branch機能
リモートリポジトリに各チームのコピーを作成して、互いのチームの作業が干渉しないようにします。
このリモートリポジトリのおおもとのデータを”マスターブランチ”と呼び、各チームの情報(ブランチ)をマスターブランチに反映することを”マージ”といいます。
GitとSVNの違い
Gitに対し、SVN(Subversion)は集中型バージョン管理の一つです。
もともと集中型バージョン管理の後に、分散型バージョン管理が登場したのですが、それには理由があります。
SVN(Subversion)には以下のような欠点があったのです。
-
全てのチームの作業が完了しないとコミットできず
- エラーが起きた際に原因をさかのぼるのが困難
- 変更点がわからない
- 誰が変更したかわからない
-
レビューする人は全ての修正をまとめて確認しなくてはいけない
-
ブランチ機能があるが、コンフリクトが発生した時が大変(Gitのマージ機能は優秀なのです。)
その点を改善するべく生まれたのがGitなどの分散型バージョン管理でした。
しかし、セキュリティが厳しくブラウザが使用できなかったり、特定のアドレスにしかアクセスできないような環境の開発現場では、SVNなどが使用されています。
VCSのホスティングサービスの種類
SVNのホスティングサービス
SVN(Subversion)の代表的なホスティングサービスには
ASSEMBLAなどがあります。