1. ホーム
  2. コラム
  3. 非エンジニア向けのGitHub入門

非エンジニア向けのGitHub入門

GitHubってなに?
名前はよく聞くけど、いまいちわからない!
社内で導入することになったけど、ほんとに役に立つの?
そんなあなたに贈る、10分でわかるGitHub入門書!

octocat


GitHubの概要

GitHubはWebサービスです。
オンラインストレージの機能と、SNSのようなコミュニケーション機能を持っています。
そして、gitというバージョン管理システムと関係があります。


バージョン管理システムってなに?

バージョン管理システムとは、ファイルの更新履歴を管理するものです。
「いつ」「だれが」「なにを」更新したのかを履歴に残せます。
また、ファイル更新後と、更新前の差分も簡単に確認できます。
バージョン管理システムは更新履歴を保存することで、更新前のファイルの状態をいつでも復元できるようにします。

gitでのファイル管理

上の図で説明すれば、
まず矢印で示されるファイルへの更新を全て保存します。
そして、3つの状態すべてを保存することで、いつでも好きな状態のファイルを復元できます。
ここでは1ファイルを例に出してますが、実際にはフォルダごと管理するため、対象フォルダ内のファイルならすべての変更履歴を保存することができます。
では、実際の業務でバージョン管理システムを使うとどんなイメージになるでしょうか

実際の業務では、複数人でファイルを更新していくため、下図のようになります。
最初に、リモート上(オンラインストレージなど)にmasterとなるファイルを用意します。
そのファイルを作業者がそれぞれのローカルにコピーします。
次に、各々でファイルを更新し、その更新をmasterファイルに反映させていくだけです。
一度masterファイルに更新が反映されれば、ほかの作業者は更新内容を自分のローカルに取り入れることができます。
つまり、ファイルの履歴を詳細に保存しながら複数人でファイルに対して更新をかけることができます。
履歴を詳細に保存することで、複数人で作業をしてもデグレが発生しにくいように工夫されています。

gitの場合の複数人での作業フロー

ここまでは、バージョン管理システムについての説明でした。
それでは、バージョン管理システムとGtiHubがどのように関係しているのかを説明していきます。


GitHub

じつは、先ほどの図で示すところのmasterファイルの置き場所がGitHubなのです。
GitHubはmasterファイルを保存するための場所を提供するwebサービスと言えます。
GitHub上に保存されたファイルの更新履歴を残すために、GitHubというサービス自体にもgitというバージョン管理システムが利用されています。
GitHub以外にもバージョン管理システムを利用したホスティングサービスは存在しています。

GitHubの役割

では、GitHubでファイルを管理することにどのようなメリットがあるのでしょうか?
ほかのホスティングサービスと何が違うのでしょうか。

プルリクエスト

まず、もっとも特徴的な機能がプルリクエストという機能です。
この機能について説明するまえに、上記で説明した複数人でのファイルの更新フローを思い出してみてください。
このフローですが、他人が行った更新によって自分の作業に影響が出ると、すごく迷惑ではないですか?
また、ほかの人がどんな更新をかけたのかを知りたくないですか?

これらの問題を解決するための機能がプルリクエストです。
プルリクエストとは、masterファイルへの更新の取り込みに対して、ほかの作業者に承認をもらうフローです。

プルリクエスト

上図のように、作業者は自分の更新をmasterファイルに取り込む際、ほかの作業者からレビューをしてもらい、ファイル取り込みの承認をもらわなければいけません。

では、どのように他の作業者の更新内容をレビューするのでしょうか。実際に画面を見てみましょう。

プルリクエストの見た目

このように、どの行にどんな更新が行われたのかを確認できます。
追加は緑色で、削除は赤色で表示されます。

もし、更新内容にミスがあった場合どうしますか。GitHubではそんなときのための機能も用意されています。

プルリクエストのコメント

このように、更新箇所に対して行単位でコメントを残すことができます。

このコメント機能は、markdownによる記述ができるので、文字の強調や絵文字、画像の添付、チェックリストの作成などもコメント内で可能です。
また、プルリクエストを出した時点で、編集者はレビューしてほしい観点や注意事項を伝えることもできます。

以下のようなイメージです。

コメントのmarkdown機能

ほかにもコメントにラベルをつけたり、レビュー者を指定できたり、さまざまな機能が用意されています。
このようにファイルの行レベルでコメントをすることができるので、製品のソースコードの品質の向上や、チームのスキル上昇につながります。
そのため、今ではIT業界を中心に世界中の企業で利用されています。


まとめ

以上、10分でわかるGitHub入門書!でした。
GitHubがどんなものなのか、実際に業務にどんな影響を及ぼすのか、概要をつかむことはできましたか。

GitHubのすごいところは、ソースコードというプロダクトを中心としたコミュニケーションツールとなっていることです。
ファイルの管理ができることも非常に魅力的な機能ですが、お互いのコミュニケーションを活発化させる様々な機能こそがGitHubの一番大切な部分です。
ぜひみなさんも利用してみてください!

■コラム執筆者

第3ビジネスユニット アカウントサービス第4ユニット 秋野 郁実

カテゴリ: Webサイト運用運営
2016年09月29日

RSS