Yuya Karubeさん
  • コラボレーター
  • SELECK(How to)
  • Yuya Karube

チーム開発を変える「GitHub」とは?導入方法・使い方を徹底解説!【第1回】【導入編】

  • -
  • このエントリーをはてなブックマークに追加
    -
  • tweet

エンジニアなら一度は名前を聞いたことがあるサービス、GitHub。今やOSS開発に限らず、企業内でのチーム開発には欠かせないものになりました。

SELECKにも数々の事例がありますが、「そもそもGitHubって何なの?」「活用方法が分からない」という方のために、連載形式で解説していきます。ネタの続く限り、予定では10回くらいになる予定です(でしたが、第1回を書き終わってみると10回も書けない気がしてきました)。

第1回は、次の内容でお送りします。

  • GitHubのベースにある技術、バージョン管理システムGitとは?
  • GitHubを使うメリットとは?
  • GitHubへの登録とリポジトリの作成
  • Gitの使い方「クローン/clone」「コミット/commit」「プッシュ/push

▼このシリーズの記事一覧

GitHubのベースにある技術、バージョン管理システム「Git」とは?

GitHubについて学ぶ前に、まずはGitについて知っておきましょう。Gitは、ソフトウェアのバージョン管理システムです。プログラミングをしていると、昨日まで動いていたものが突然動かなくなったりしますよね。だいたい変な所を書きかえてしまって元に戻せなくなるわけですが、そのような場合でもGitなら「過去のある状態」に簡単に戻すことができます。

その他にも、複数人で開発するときには「誰が、いつ、どのような目的でコードを修正したのか」を残せるというメリットもあります。Nヶ月前の自分は他人だ、という話もありますし、Gitを使って編集の履歴と意図を残しながら開発を進めていきましょう。

▼このようにファイルの差分を残すことができます

ファイルの差分

Gitの詳しい使い方はこの記事の最後で、GitHubを実際に使いながら解説します。

GitHubを使うメリットとは?

そんな便利なバージョン管理ツールGitに、よりチーム開発に適した機能を付け加えたサービスがGitHubです。プロジェクトのバグ管理に使えるIssuesや、コードレビューを効率化するPull Requestなどのチーム開発に役立つ機能が、Web上から使えるようになります。

▼Pull Requestの内容。「どういう変更があったか?」を差分と合わせて残せる。

Pull Request

GitHubをチームで活用することで、「コードをベースに会話する」ことが実現できます。コードレビューでは、指摘と対象のコードが一目で分かるようになりバグ修正や機能追加がどの時点のバージョンで実装されたのかも一目瞭然です。そういった特徴が注目を集め、今まで自社でソースコードを管理していた企業も、GitHub上で開発を進めていくようになりました。

また、GitHubはOSS(オープンソース・ソフトウェア)の公開場所としても活用されており、AirbnbやFacebookといった海外の企業はもちろん、クックパッドやサイバーエージェントといった国内企業も続々とGitHubでOSSを公開しています。

GitHubへの登録とリポジトリの作成

メリットを長々と説明されるよりも、実際に使ってみましょう。下記のURLから、ユーザー登録ができます。

https://github.com/

ユーザ登録

ユーザー名、メールアドレス、パスワードを入力してユーザー登録します。登録したメールアドレスに届いたURLを踏むと、登録完了です。

登録が完了したら、さっそくリポジトリを作りましょう。リポジトリはソースコードを管理する単位です。例えばSELECKのようなサービスだと、ユーザーが見ている画面のリポジトリと、記事を入稿する管理画面のリポジトリに分かれています(実際はもっとありますが)。

[New Repository]から、リポジトリ名を入力します。

▼メニューからリポジトリが作成できる

リポジトリの作成

今回はテストも兼ねて、Initialize this repository with a READMEにチェックを入れておきましょう。自動的に1ファイルだけ入ったリポジトリが作成されます。

READMEを作成

リポジトリができました!

リポジトリ

Gitの使い方「クローン」「コミット」「プッシュ」

それでは、先ほど作ったリポジトリで早速Gitを体験してみましょう。その前に、お使いのPCのターミナルでgitコマンドが使えるようにする必要があります。インストール方法は、「mac git」とか「windows git インストール」とかで検索してみて下さい...

Gitで開発をするときの、超基本的な流れは次のようになっています。

  1. クローン/clone:リポジトリの内容をローカルPCにコピーする
  2. コミット/commit:ファイルを更新した情報を、Gitに記憶させる
  3. プッシュ/push:ローカルで変更した内容を、元のリポジトリに反映する

まずは、リポジトリをクローンします。GitHub上で管理されているリポジトリを、ローカルのPC上にコピーすることをクローンと呼びます。チーム開発では、全員が同じファイルを修正することがあるため、マスタのリポジトリ(GitHub上のリモートリポジトリと呼ぶ)と、作業用のリポジトリ(クローンしたローカルリポジトリと呼ぶ)を分けて管理しています。

git clone リポジトリのURL

git clone

cloneが成功したら、早速ファイルの中身を書きかえてみます。ディレクトリの中にREADME.mdというファイルがあるはずなので、これを適当に書きかえましょう。書き換えが終わったら、git add -Aというコマンドと、git commit -m "test"というコマンドを続けて実行します。細かい意味は後で覚えたら良いですが、このコミットという動作が「ファイルの変更をGitに反映します」という司令です。このコマンドを打つと、Gitが差分を記憶してくれます。

git add -A

git commit -m "test"

git commit

そして、コミットが終わったら最後のコマンドgit pushを実行します。プッシュは「ローカルでの変更を、リモートリポジトリにも反映します」というコマンドです。これによって、自分が修正した内容が他のチームメンバーからも見られるようになります。

git push

GitHub上のリポジトリを確認してみましょう。先ほどの修正が反映されていれば、Git入門は終わりです!

修正後のリポジトリ

次回はブランチと、Pull Requestの使い方について解説します!

ここまで、GitHubでソースコードを管理する方法を解説しました。しかし、これだけではGitとGitHubの機能を、半分も使っていません。次回は、チーム開発を行う上で必須になるブランチ/branchという概念と、GitHubの目玉機能プルリクエスト/Pull Requestについて解説します!

▼このシリーズの記事一覧

  • -
  • このエントリーをはてなブックマークに追加
    -
  • tweet