GitHubは世界中で、多くのプログラマーに使われている人気のサービスです。特に複数のプログラマーがソフトウェアを共同開発する際は、GitHubは非常に役立ちます。一方でGitHubでは専門的な技術や機能が多く使われており、これから使いはじめる方は「難しそう」と感じるかもしれません。
ただ、これらGitHubの基本的な知識は、丁寧に紐解いていけば簡単に理解できるでしょう。この記事ではGitHubを使う際に知っておきたい基本知識やメリット、活用事例についてわかりやすく解説しています。
目次
GitHubとは?【ソースコードの共有・管理サービス】
「GitHub(ギットハブ)」とはプログラムのソースコードを、オンラインで共有・管理するサービスです。GitHubは世界中のプログラマーによって使われています。
GitHubのもとになっているのは、「Git」と呼ばれるソースコードのバージョン管理が行えるシステムです。GitHubが登場する以前から、Gitは広く使われていました。
たとえば複数のプログラマーが共同でプログラムを開発する際に、サーバーの共有フォルダ上でソースコードを管理したとします。この場合、どのファイルが最新版か分からなくなったり、編集中のファイルを他の誰かに上書きされてしまったりすることが少なくありません。
Gitでバージョン管理を使えば、どのファイルが最新版かを簡単に把握できるようになる上に、上書きなどによるトラブルを防げます。GitHubはこのGitをオンラインで使えるようにして、多くのプログラマーが活用できるようにしたサービスなのです。
GitHubを使う前に覚えておきたい基本知識
GitHubには、ソースコードの共有・管理に役立つ便利な技術や機能が複数あります。GitHubを使いはじめる際は、あらかじめこれらの内容を把握しておきたいところです。本項ではGitHubを使うにあたって、覚えておきたい基本知識をまとめて解説します。
バージョン管理システム「リポジトリ」
リポジトリとはプログラムのソースコードや関連データ・ドキュメント、それらの変更履歴を格納するための保存場所です。リポジトリは、自分のPC内にある「ローカルリポジトリ」と、ネットワーク上にある「リモートリポジトリ」に分類されます。
プログラマーはまずローカルリポジトリ上でソースコードを編集し、それをリモートリポジトリへ反映させるのです。オンラインのGitHubは、リモートリポジトリとしての役割を果たします。
ファイルの追加・変更履歴を操作する「コミット」と「プッシュ」
リポジトリへファイルを追加したり、変更履歴を保存したりする操作を「コミット」と呼びます。一方の「プッシュ」とは、ローカルで変更した内容をリモートリポジトリ(GitHub)にアップして反映させることです。
複数のバージョン管理を行う「ブランチ」
「ブランチ」とは変更履歴を分岐させ、複数のバージョン管理を行う方法です。あるいは分岐させた変更履歴そのものを、ブランチとも呼びます。
分岐したブランチは、他のブランチの影響を受けません。1つのプログラムを複数のプログラマーが並行して編集するような際にブランチを使えば、他プログラマーの影響を受けずに作業を行えます。各プログラマーがそれぞれの作業を終えたあとに、メインのブランチへ変更内容を反映させるのです。
他プログラマーのリポジトリを編集するのに役立つ「フォーク」
フォークとは、他プログラマーのリポジトリをコピーする行為や、そのコピーそのものを指します。1つのリポジトリが、食器のフォークのように分岐するのが、この言葉の由来です。
オリジナルのリポジトリに対する編集やアクセス権限がなくても、フォークを使えば対象のリポジトリを改変できます。フォークを改変しても、もちろんオリジナルに影響はありません。
フォークは主に、上流のリポジトリに対して行われることが多くなっています。フォークを編集した上で、オリジナルの変更を提案したりあとから同期させたりするわけです。
リポジトリの変更を通知する「プルリクエスト」
プルリクエストとはローカルリポジトリで行った変更内容を、他プログラマーに通知する機能、及び通知そのものを指す用語です。プルリクエストは、前項のブランチやフォークで改変した内容を、オリジナルに反映させたいときによく使われます。
第三者の変更を自分のリポジトリへ反映する「マージ」
マージとはプルリクエストで通知された変更内容を、自分のリポジトリなどへ反映させる作業です。マージは複数人でプログラムを開発するときに、よく行われます。
たとえばプログラマーがフォークやブランチを改変し、その改変内容をオリジナルに反映させたいと考えたとしましょう。このとき、そのプログラマーはプルリクエストによって変更内容をオリジナルのオーナーへ通知するのです。
オーナーはプルリクエストによって、変更内容を確認します。そうして問題がなければ、オリジナルに対し変更内容をマージするわけです。
GitHubを使うメリット
GitHubは、世界中のプログラマーにより活用されています。それでは、なぜGitHubが使われるのでしょうか。ここでは、多くのプログラマーがGitHubを使う主なメリットをみていきましょう。
開発の効率や品質を高めることができる
GitHubの最も大きなメリットは、開発の効率や品質を高められることです。共有フォルダ上で開発途中のソースコードを管理する場合、共同で編集するプログラマーが増えるほど、どれが最新版かわかり辛くなります。誤ったファイルを上書きしてしまうなど、トラブルが発生することも少なくありません。
一方で、GitHubでソースコードを管理すれば、最新版や変更履歴が分かりやすくなります。またGitHubはブランチやフォーク、プルリクエストといった共同での開発に役立つ機能も豊富です。
これらの理由で、GitHubを使えばプロジェクトに携わるプログラマーが多くなっても、スムーズに開発をすすめられるようになります。その結果、開発効率や品質を向上できるわけです。
無料でプライベートリポジトリを利用できる
GitHubは開発に必要な様々な機能を無料で利用可能です。たとえばGitHubでは、無料で非公開のリポジトリ(プライベートリポジトリ)を作成することもできます。プライベートリポジトリはもともと有料でしたが、2020年4月から無料でいくつでも作成できるようになりました。
GitHubの活用事例
GitHubは、企業において複数のプログラマーが共同で開発をすすめるのに欠かせないツールです。ここではGitHubが実際どのように活用されているか、参考になる事例をみていきましょう。
プロジェクト間でノウハウ・ナレッジを共有
プロジェクトごとに個別で開発をすすめているため、開発部間でノウハウやナレッジが共有されていないという企業も少なくないでしょう。GitHubで一元的に社内のリポジトリ―を管理することで、プロジェクト間のコミュニケーションを活発化させることができます。その結果、プロジェクト間でノウハウやナレッジを共有するきっかけにもなるのです。
パートナー間での開発を効率化する
オンラインストレージなどを使い、パートナー間でソースコードを共有しているという企業も多いでしょう。しかしオンラインストレージでは、最新版がどれか分かり辛くなり、誤った上書きなどのトラブルも発生しやすくなります。
GitHubを利用すれば、パートナーと離れていても最新版がどれか分かりやすくなりトラブルを防ぐことが可能です。その上フォークやプルリクエストなど、共同での開発をすすめるのに役立つ豊富な機能も活用できます。そのためGitHubを活用することで、パートナー間の開発を効率化できるようになるのです。
チェックテスト
チェックテストを確認する
githubのアカウント及びリモートリポジトリを作成し、作成したリモートリポジトリのリンクをdiscordで共有ください。