githubについて
本日(と次回)はgithubについて、その概念と使い方について解説したいと思います。
githubとは
githubとはバージョン管理するツールです。
例えば、3人でブログアプリを作成したいとすると
Aさんはユーザ管理機能
Bさんはメッセージ投稿機能
Cさんはコメント機能
のように分担することになります。
この時並行して1つのプロジェクトを開発・更新しようとすると管理が大変なので、それを助けるためのツールがgithubです。
githubは初学者(というか私)にとってめちゃくちゃわかりにく
これからgithubの解説していくわけですが、正直わかりにくいです。
その理由は大きく2つあると思ってます。
- 用語がよくわからない
- メリットがよくわからない
用語がよくわからない
プッシュ、プル、コミット等のカタカナ語がたくさん出てきて、これらが一体どんな操作を指しているかが覚えにくいです。
この記事ではこのあたりをわかりやすきイメージ図とフロー図で解説したいと思います。
メリットがよくわからない
これについては、チーム開発を経験しないとなかなか伝えきれないと思うので、今回では解説しましせん。
(また、私がチーム開発を終えてから記事にしたいと思います)
バージョン管理の全体像
githubの用語や操作を説明する前に、複数人でソフトウェア開発を行うときのバージョン管理の全体像について説明します。
イメージ図は以下の通り。
3人で開発する時に各人は開発するシステムの環境を自分のローカルに作ります。
そして、例えばAさんは画面の開発・修正を行い、終わればその内容を反映させます。
これを分担して、例えば処理はBさん、DB管理はCさんのように並行して開発を行います。
このような開発を行うときのシステムのバージョン管理を行うのが、githubです。
githubを使った開発の流れ
新規にシステム開発するときのgithubの流れを説明します。
大きく準備フェーズを開発フェーズがあります。
準備フェーズ
- ローカルでプロジェクト(開発するシステム)を作成
- ローカルプロジェクトをバージョン管理できるように設定
- ローカルプロジェクトをネットワーク環境に配置
開発フェーズ(これは次回)
- 開発環境をローカルにコピーする
- 開発する部分を決定する
- 開発(修正)する
- 開発した部分をネットワーク側に配置する
- 結果を他のメンバーがレビューする
- 問題なければ開発内容をシステムに適用させる
準備フェーズ
まずはプロジェクトを作成します。Railsで言えば「rails new プロジェクト名」で作成できます。
次に作成したプロジェクトをgithubでバージョン管理できるように設定するために、プロジェクトフォルダに移動して、以下のコマンドを打ちます。
$ git init
これでローカル側でバージョン管理するためのプロジェクトとして設定されました。
このバージョン管理されたフォルダのことをローカルリポジトリと呼びます。
次にこのプロジェクトをネットワーク側に配置するために二つの作業を行います。
- インデックスに追加する
- コミットする
インデックスとは、バージョン管理するためのファイルを一時的に配置する場所のことです。
インデックスに配置した後、コミットを行います。コミットすることで、修正したファイルのバージョンが記録されます。
簡単にいうと、ローカル側での修正作業が終われば、コミットします。
インデックスとコミットするためのコマンドは以下の通りです。
$ git add ファイル名 #インデックスに追加 $ git commit -m "コミット名" #ローカルでコミット
ここまでのイメージは以下の通り。
続いて、ネットワーク側にバージョン管理をするために場所を作ります。
ネットワーク側のバージョン管理する場所をリモートリポジトリと呼びます。githubで「New repository」から作成することができます。
リモートリポジトリは別名「origin」と呼んだりします。
次にリモートリポジトリとローカルリポジトリの括り付けを行います。括り付けはローカル側で以下のコマンドを実施します。
$ git remote add origin リモートリポジトリのURL
そして最後にローカルリポジトリの内容をリモートリポジトリに反映させます。この操作をプッシュするといいます。
プッシュもローカル側で以下のコマンドを打ちます。
$ git push origin master
これでローカルリポジトリの内容がリモートリポジトリに反映できました。
ここまでの作業をまとめると以下のようになります。
$ git init #ローカルリポジトリ設定 $ git add ファイル名 #インデックスに追加 $ git commit -m "コミット名" #ローカルでコミット
#githubでリモートリポジトリを作成
$ git remote add origin リモートリポジトリのURL #ローカルとリモートを括り付け $ git push origin master #ローカルの内容をリモートへ反映
また、イメージ図は以下のようになります。
用語集
github
バージョン管理するツール
ローカルリポジトリ
バージョン管理するプロジェクトが格納されたフォルダ
インデックス
バージョン管理したいファイルを一時的に配置する場所
コミット
ローカル側でバージョン管理を記録すること
リモートリポジトリ
ネットワーク側のバージョン管理を行う領域。
origin
リモートリポジトリの別名
master
開発中心となるブランチ。ブランチについて次回行こう説明します。
次回
次回はgithubを使って複数人で開発を進めるときの流れについて解説したいと思います。