プログラミング

エンジニアに必須のGitHubスキル、基本の使い方や人気の理由を解説

エンジニアに必須のGitHubスキル、基本の使い方や人気の理由を解説

GitHubとは、ソフトウェア開発においてソースコード管理を行うためのWebサービスです。GitHubは世界中のエンジニアに利用されており、数あるソースコード管理ツールの中でも標準的なツールとなっています。

エンジニアにとって、GitHubは必須のスキルであるといえます。GitHubが使えればエンジニアの転職やフリーランスの案件獲得などの際にも有利になります。 この記事では、エンジニアの必須スキルであるGitHubについて、基本の使い方や人気の理由をわかりやすく解説していきます。

GitHub(ギットハブ)とは

GitHubとは、ソフトウェア開発においてソースコードのバージョンを管理することができるWebサービスです。変更履歴を残しながらソースコードの管理ができるほか、複数のエンジニアで開発を行う際に便利な機能が充実しており、多くの企業がGitHubを利用しています。そのため、GitHubを使って開発を行うスキルは、エンジニアにとって不可欠であるといえます。

GitHubについて、Gitとの違いや人気の理由をくわしく説明していきます。

Gitとの違い

Gitとは、ソースコードのバージョン管理ツールです。Gitで開発したソースコードをWebサービスを介して他のユーザに公開し、共有することができるサービスがGitHubとなります。

GitHub上にはオープンソースのソフトウェアが多数公開されており、世界中のエンジニアが作成したソースコードを閲覧することができます。そのため、GitHubに公開されているオープンソースのライブラリを、自身のGitにダウンロードして開発に活用する、といった使い方も可能です。ソースコードだけでなく、GitHub上に蓄積された知見や開発ノウハウも活用できることが、GitHubの特徴です。

GitHubは何故エンジニアに人気なのか

GitHubと同様に、ソースコードを管理するサービスは他にも存在します。その中で、GitHubが多くのエンジニアに選ばれているのは何故なのか、理由を説明していきます。

ユーザー同士で情報交換ができる

GitHubでは、エンジニア同士が情報交換をするためのコミュニケーション機能が充実しています。 例えば、ソースコードに対してバグ報告や改善の提案などのフィードバックを行う機能や、ディスカッションを共有する機能、ユーザの貢献度を可視化する機能、知見を共有する機能など、活発な情報交換に繋がる機能が充実しています。

先進的な機能が続々と提供される

GitHubは2008年に登場し、2018年にMicrosoft社に買収されました。GitHubは買収後も積極的な機能拡充を続けており、先進的な独自の機能が続々と提供され続けています。

例えば、Microsoft社のソースコードエディタ「Visual Studio Code」上でGitHubの操作を行えるようにする機能や、ソフトウェア開発におけるワークフローを自動化する機能、支援者として資金提供ができる機能など、エンジニアにとって魅力的な機能が続々とリリースされています。

プライベートリポジトリが無料で使える

以前はGitHub上で公開しないソースコードを保管・管理するプライベートリポジトリは有料でした。そのため、クローズドな開発をGitHub上で行おうとすると、有料プランを利用する必要がありました。

しかし、2020年の4月以降、プライベートリポジトリの利用も無料となったことで、GitHubの利便性がさらに向上しました。

GitHubで開発作業を運用するメリット

GitHubを用いた開発を行うことには多くの利点があります。GitHubで開発作業を運用するメリットについて説明していきます。

バージョン管理機能

ソースコードのバージョン管理機能は、GitHubの主要な機能です。GitHubではコードの変更履歴を記録するだけでなく、コメントやメモによって変更した理由も残すことができます。

GitHubでバージョン管理を行うことによって、新しいバージョンでバグが発生した際、すぐに以前のバージョンに切り戻す、といった対処が取れるようになります。バージョンが正しく管理されていないと、トラブル発生時の影響が大きくなることもあるため、ソフトウェア開発においては確実にバージョン管理を行うことが大切です。

複数エンジニアでの効率的な開発

GitHubは、複数のエンジニアで効率的な開発を行うための機能が充実しています。GitHubでは同じソースコードをもとにした開発作業を並行して行えるように、複数のバージョン管理を分岐して行う機能が存在します。

この機能を利用すると、バグの改修と新機能の追加を別のエンジニアが同時に行い、最終的にマスターのソースコードに反映するということが可能になります。 このように、GitHub上で開発を行うと、ソースコードの一貫性を保ちつつ、複数のエンジニアによる開発作業を効率的に進めることができます。

ドキュメントもバージョンを含めて管理できる

ソフトウェア開発においては、ソースコードだけでなく、設計書などの関連ドキュメントも管理していく必要があります。GitHubでは、ドキュメントのバージョン管理も行うことができます。

ソースコードとドキュメントを一緒にGitHub上で管理することによって、仕様書の変更漏れを防止する効果があります。また、仕様変更箇所をGitHub上で開発メンバーに共有することが可能となるため、情報共有がされやすいというメリットもあります。

イシュー管理

GitHubのイシュー管理は、開発に関わる共有事項や確認事項について、スレッド形式でコミュニケーションを取ることができる機能です。開発エンジニアからエンドユーザへの質問や、エンジニアからのバグ報告などもイシュー管理を使って行うことができます。

タスクのアサイン機能、スケジュール管理機能なども備わっており、簡易的なタスク管理ツールのように使うこともできます。イシュー管理によって、開発に関わるさまざまな情報を一元管理し、開発効率を上げることが可能となります。

アクセス制御の管理

GitHubにはアクセス制御を行う機能があります。アクセス制御の機能を使うと、ひとつのプロジェクト内で開発エンジニアの権限と承認者の権限を分けたり、エンジニアによってアクセス可能な範囲を制限したりすることができます。

複数のエンジニアで開発を行う際には、各自の担当範囲や権限を明確化することが重要です。アクセス制御の管理を確実に行っていくことで、スムーズな開発を実現することができるのです。

GitHubのデメリット

GitHubのデメリットとしては、機能をよく理解しないまま使うと、情報漏洩に繋がるリスクがあるという点が挙げられます。

GitHubは、ソースコードを全世界に公開することができるため、公開・非公開の設定を誤ると、公開する予定のないソースコードであっても、誰でも見ることができる状態になってしまいます。

そのため、企業においてソフトウェアの開発を行う際には、GitHubの管理責任者を決めた上で、公開・非公開を含めた各種設定や運用ルールなどを整理し、ルールの順守を徹底しながら開発を進めていきましょう。

GitHubの使い方【基礎】

GitHubとはどのようなサービスなのかを理解したところで、実際にGitHubの使い方を覚えていきましょう。まずは基礎的な使い方について説明します。

アカウント登録

GitがPCにインストールされた状態で、GitHubのトップページ(https://github.com/)にアクセスして、アカウント登録をします。アカウント登録は以下の手順で行うことができます。

  • トップページの入力フォームにメールアドレスを入力して、「GitHubにサインアップする」ボタンを押下
  • ユーザ登録画面に遷移するため、入力フォームに従ってパスワード、ユーザ名を入力
  • 登録したメールアドレスに認証メールが送られてくるため、記載されている認証コードで認証を行う

リモートリポジトリを作成

GitHubにログインしたら、リモートリポジトリを作成していきます。 リポジトリとは、ファイルを管理するための場所のことです。リポジトリは、GitHub上に存在する「リモートリポジトリ」と、開発者ごとにローカル環境で作成する「ローカルリポジトリ」の2種類があります。ローカルリポジトリで開発作業を行い、リモートリポジトリにアップロードするのが基本的な使い方となります。

リモートリポジトリの作成手順は以下の通りです。

  • GitHubの右上のメニューの「新しいリポジトリ」(https://github.com/new)を選択
  • フォームの「リポジトリ名」欄に希望のリポジトリ名を入力
  • リポジトリの公開/非公開の選択
  • READMEファイルを追加する場合はチェックボックスにチェック
  • 「リポジトリの作成」ボタンを押下

ローカルリポジトリを作成

次に、ローカルPC上にローカルリポジトリを作成していきます。

・Windowsの場合はPowerShell、Macの場合はターミナルを使って、任意の場所に新規ディレクトリを作成

・作成したディレクトリ直下に移動し、ローカルリポジトリ作成コマンドを実行
(コマンドを実行したディレクトリが新規のローカルリポジトリとして初期化される)

git init

ファイルを作成・編集する

ローカルリポジトリが作成できたら、テスト用のファイルを作成・編集していきます。

  • ローカルリポジトリのディレクトリ配下に、テスト用の新規ファイルを任意の名前で作成
  • テキストエディタを使ってファイルを編集
  • ファイルを保存する

ファイルの作成・変更・削除をインデックスに追加する

ファイルを新規作成しただけでは、ローカルリポジトリにファイルは登録されていません。そのため、まずはファイルをインデックスに追加します。

・インデックスへの追加を実行

git add [ファイル名]

・ファイルのステータスを確認するコマンドを実行

git status

・「Changes to be committed」という記述の後に、
new file: [ファイル名]
という形で追加したファイル名が表示されることを確認

ローカルリポジトリに変更内容をコミット

ローカルリポジトリに新規ファイルを反映するためには、さらに変更内容をコミットする必要があります。

・新規ファイルのコミットを実行

git commit -m “add new file”

・ファイルのステータスを確認

git status

・「nothing to commit」(コミットされていないファイルがない)ことを確認

リモートリポジトリにアップロードし反映

最後に、リモートリポジトリに新規のファイルをアップロードします。

・リモートリポジトリの情報を追加(初回のみ)

git remote add origin https://github.com//[作成したリモートリポジトリ名].git

・リモートリポジトリへのアップロードを実行

git push origin master

・GitHubのユーザ名・パスワードを尋ねらるため入力(初回のみ)

GitHubの使い方【応用】

続いて、GitHubの使い方の応用編について説明していきます。GitHubの便利な機能を使いこなして、開発に役立てていきましょう。

ブランチ作成

ブランチとは、GitHub上で複数のバージョン管理を行うための機能です。例えば、現在の最新バージョンに対して機能追加とバグ修正という別の作業を行いたい場合に、それぞれのバージョン管理を分岐して行っていくことができます。

ブランチは以下の手順で作成します。

・新規のブランチを作成する

git branch [ブランチ名]

・ブランチを一覧表示し、作成したブランチ名が表示されていることを確認する

git branch

GitHubの設定内容の確認・変更

GitHubのさまざまな設定内容を確認・変更するためには、「git config」コマンドを使います。

・設定の確認・変更のコマンド書式

git config [種別] [設定項目] [変更内容(値)]

(種別は「system」「global」「local」のいずれか)

コマンドの使用例は以下の通りです。

・localの設定内容を表示する

git config -local -list

・ユーザ名の設定・変更

git config –global user.name [ユーザー名]

・メールアドレスの設定・変更

git config -global user.email [メールアドレス]

ファイル比較

ソフトウェア開発において、ファイルを比較し、変更点を確認する作業はしばしば発生するため、ファイル比較の方法を覚えておくと便利です。 Git上のファイルを比較するコマンドは「git diff」となります。書式は次の通りです。

・ファイル比較のコマンド書式

git diff [オプション] [対象コミット] — [対象ファイル名]

「git diff」は引数の与え方によって色々なパターンでファイル比較ができます。代表例を以下に示します。

・ファイル同士を比較する

git diff — [ファイルパスA] [ファイルパスB]

・特定のファイルの変更点を確認する

git diff — [ファイルパス]

・ブランチ同士の差分を比較する

git diff [ブランチA]..[ブランチB]

リポジトリにタグをつける

「git tag」というコマンドで、リポジトリにタグをつけ、バージョン管理などに活用することができます。タグにはコメントをつけることも可能です。 実行コマンドは次の通りです。

・注釈なしのタグ付与

git tag [タグ名]

・注釈ありのタグ付与

git tag -a [タグ名] -m [“コメント“]

ファイルをパソコンにダウンロードをする

GitHub上のファイルをパソコンのローカル環境にダウンロードする方法は2種類あります。

1つ目はGitHub上のファイルを圧縮してダウンロードする方法、2つ目は GitHub上で管理されているリポジトリを自身のローカルリポジトリにダウンロードする方法です。 それぞれの方法について説明していきます。

GitHub上でファイルのダウンロード

GitHub上のソースコードをローカル環境で閲覧したいという場合や、単に実行してみたいという場合には、GitHub上のファイルを圧縮してダウンロードする方法がよいでしょう。ファイルのダウンロードは以下の手順で行うことができます。

・GitHub上でダウンロードしたいリポジトリを開く

・「Code」ボタンをクリックし、メニューの中から「Download ZIP」を選択

Gitで管理されているファイルのダウンロード

GitHub上のソースコードを利用して開発を行いたい場合には、GitHub上のファイルをローカルリポジトリにコピーしてくる「git clone」というコマンドを使いましょう。 以下のコマンドを実行することで、GitHub上のリモートリポジトリをローカルリポジトリにダウンロードすることができます。

・GitHub上のリモートリポジトリをダウンロード

git clone [リモートリポジトリのURL]

まとめ

ソフトウェア開発は複数のエンジニアがチームを組んで行うことが多く、GitHubはエンジニアにとって必須のスキルであるといえます。転職やフリーランス案件においても、エンジニアの求人はGitHubのスキルが前提条件となることもあるため、GitHubを活用した開発スキルはぜひ今から身につけておきましょう。

また、作成したソースコードをGitHub上で公開しておくと、エンジニアの採用の際、面接官がソースコードを確認することもあります。エンジニアにとってのポートフォリオとなり得るため、普段からGitHubを見やすく整理し、最新の状態にしておくようにしましょう。

関連記事Related Posts