本記事では、エンジニアの転職で活かせるノウハウやキャリアについて、
現役のプロエージェントが、わかりやすく解説します。
GitHubとは、ソフトウェア開発のソースコードを管理できるWebサービスです。共有機能が充実しているので、チームによる開発プロジェクトに適しています。エンジニアにとってGitHubを使えることは必須条件といっても過言ではなく、転職市場でも有利な武器となります。
本記事では、GitHubの基礎知識や人気の理由、基本的な操作方法などを解説します。
目次
■ GitHub(ギットハブ)の概要
GitHubとは
「GitHub」とは、ソフトウェア開発プロジェクトのソースコードを管理できるWebサービスのことです。世界中の人々がソースコードやデザインのデータなどを保存して公開でき、履歴を残しながら更新できます。全て共有できるので、他者が修正を加えることも可能です。チームなど複数で開発を行う際に、ファイルの変更履歴をすべて反映でき、簡単に管理できるのがGitHubの最大の特徴です。
ソースコードを管理する単位を「リポジトリ」と呼びますが、GitHubに作成されたリポジトリは、基本的には全て公開される「パブリックリポジトリ」です。公開したくなければ、指定したユーザーのみがアクセスできる「プライベートリポジトリ」を作成できます。このほか、メモ書き(wiki)やタスク管理ツールなどの共有機能、バグ管理機能なども充実しています。
GitHubは、法人・個人のどちらも無料で利用でき、高度なコラボレーションを行うための有料プランも用意されています。
Gitとの違い
Gitとは、ソースコードのバージョン管理システムのことです。一方のGitHubは、Gitの作業をメンバーや他者と共有できるWebサービスのことです。Gitをインストールすれば、GitHubのサービスを利用できます。
GitHubが人気の理由
GitHubと同様のソースコード管理サービスには、「Bitbucket」や「GitLab」などがありますが、GitHubが多くの企業や個人に選ばれる人気の理由としては、以下が挙げられます。
ユーザー同士のコミュニケーション機能が充実
GitHubでは、以前から多くのオープンソースが管理されており、開発者同士が情報交換や知見を共有できるコミュニティがたくさん形成されています。議論を共有できる機能や、メンバーの貢献度を可視化する機能なども充実しており、ユーザー同士の結びつきや開発をサポートする役割に優れています。
先進的な機能が拡充されている
GitHubは、2018年にMicrosoft社の傘下となり、同社の先進的な機能も活用できるようになりました。Microsoft社のフリーのソースコード編集ソフト「Visual Studio Code」をオンラインで利用できる「Codespaces」や、ソフトウェアの開発から公開まで一連の流れをサポートする「GitHub Actions」、オープンソースコミュニティに資金提供者として参加できる「Sponsors」など、さまざまな機能が続々と提供されています。GitHubならではの先進的なサービスは、多くのエンジニアを魅了しています。
プライベートリポジトリが無料で利用できるように
開発中のアプリケーションや、オープンソース化する予定のない開発に向いているプライベートリポジトリの使用は、GitHubでは以前は有料でした。これが2020年4月から無料で無制限に作成できるようになったことで、GitHubへの注目度がさらに高まるようになりました。
GitHubを使う前に覚えておきたい知識
GitHubを使うなら、以下の知識は最低限身につけておきましょう。
ローカルリポジトリ
「ローカルリポジトリ」とは、GitHubで共有するファイルを保存する場所で、自分のパソコン内に存在します。また、GitHubに存在する保管場所は「リモートリポジトリ」と呼び、開発者は各自のローカルリポジトリで行った更新内容を、リモートリポジトリで共有・管理します。
コミット
「コミット」とは、作成したファイルや更新情報をローカルリポジトリに登録する操作のことです。ファイルを保存すると更新内容が保存されますが、ローカルリポジトリでファイルを編集した後に、GitHubに変更内容を登録するには、必ずコミットを行う必要があります。
プッシュ
「プッシュ」とは、ローカルリポジトリで更新した内容を、リモートリポジトリにアップロードする操作のことです。ファイル更新時にプッシュすると、ローカルリポジトリにコミットされた変更が GitHubのリモートリポジトリに送信されます。チームで開発を進める際には、他者がファイルにアクセスできるように忘れずにプッシュする必要があります。
ブランチ
「ブランチ」とは、1つのプロジェクトを分岐させることで、チーム内で行う様々な作業を同時進行できるようにする機能のことです。ソフトウェアの開発では、1つのプロジェクトに対して、複数のメンバーが同時に機能追加やバグ修正、ファイルやディレクトリの変更・更新などを行うことがよくあります。分岐したブランチは他のブランチの影響を受けないので、それぞれの開発を並行作業できます。また、分岐したブランチは、他のブランチと合わせて1つのブランチにまとめることも可能です。
このときの、リポジトリの作成時から存在するブランチを、「メインブランチ(旧マスターブランチ)」といいます。2回目以降のコミットは、ブランチを切り替えるまでメインブランチに追加されることになります。
マージ
「マージ」とは、あるブランチで行った変更や更新の記録を、異なるブランチに適用することです。ブランチで行った作業内容をメインブランチにマージすることで、複数の更新情報をプロジェクトに反映できます。ただし、リモートリポジトリでマージを行ったら、結果をローカルリポジトリへ反映する必要があります。
クローン
「クローン」とは、リモートリポジトリをコピーして、自分のPCなどにローカルリポジトリを作成することです。コピーしたローカルリポジトリで、ファイルの更新作業ができるほか、更新内容をリモートリポジトリにプッシュすることも可能です。
プルリクエスト
「プルリクエスト」とは、ローカルリポジトリにおける変更を、他者に通知する操作のことです。機能追加や改修など、作業内容をレビュー・マージ担当者などに通知するほか、ソースコードの変更箇所をわかりやすく表示させて、チームメンバーからフィードバックをもらうことも可能です。これにより、自分だけだと気がつかないバグや記述ミスの発見ができ、コードの品質向上につながります。
インデックス
「インデックス」とは、ステージングエリアとも呼ばれ、リポジトリにコミットする準備をするための領域のことです。リポジトリ管理下にあるディレクトリの中には、一時的に使うファイルなど、管理が不要なものもあります。そのため、GitHubでは、バージョン管理する対象のファイルやフォルダを「インデックス」と呼ばれる領域に登録することで、必要なもののみバージョン管理が行えるようになっています。
新たにフォルダやファイルを作成する場合は、コミットする前にインデックスに登録する必要があり、ファイルの更新情報は、まずインデックスに登録された後に、リモートリポジトリに保管されます。
■ GitHubの使い方【基礎編】
ここからは、GitHubの基本的な使い方を説明します。
STEP1 アカウント登録
Gitをインストールした後に初期設定、アカウント登録を行います。
・トップページにアクセスして、メールアドレス、ユーザー名、パスワードを登録
・登録したメールアドレス届いたメールで認証する
STEP2 リモートリポジトリを作成する
続いて、リモートリポジトリを以下の手順で作成してみましょう。
・GitHubのトップ画面で「Create Repository」ボタンをクリック⇒リポジトリの作成画面へ
・「Repository name」に作成したいリポジトリ名を入力
・ソースコードを公開したい場合は「Public」、公開したくない場合は「Private」を選択
・必要項目を入力⇒「Create repository」ボタンをクリックするとリポジトリの作成は完了
STEP3 ローカルリポジトリを作成する
次にローカルリポジトリを作成していきます。
・Windowsは「PowerShell」、Macは「ターミナル」でディレクトリを作成
・「git init」コマンドでローカルリポジトリを作成
・「Initialized empty Git repository in ~」と表示されたら成功
STEP4 ファイルを作成する
ファイルの作成は、以下の手順で行います。
・任意のテキストファイルをディレクトリ「test」に作成
・$ vi test.txt で test! ファイルになる
STEP5 ローカルリポジトリにコミットする
作成したファイルを、ローカルリポジトリにコミットしましょう。
・「git add」コマンド($ git add test.txt)でファイルをインデックスに登録
これで、リポジトリの登録が完了です。
STEP6 リモートリポジトリにプッシュする
作成したファイルを、リモートリポジトリにプッシュするには、以下の手順で行います。
・「git remote」コマンドでリモートリポジトリにファイルを追加
・リポジトリのURLは、GitHubで作成したリポジトリのURLを指定
・「git push」コマンド($ git push origin master)で、リモートリポジトリに送信
・ユーザーネームとパスワードを入力して完了
これでGitHubへプッシュし、リモートリポジトリへ反映できました。
■ GitHubの使い方【応用編】
続いて、GitHubでよく利用する機能の使い方も解説しておきましょう。
ブランチを作成する
ブランチを作っておけば、メインブランチから処理を分岐して開発を行えます。
・ファイルを作成してローカルリポジトリにコミット
・「git branch」コマンドを実行 git branch [ブランチ名]
・作成されたブランチは引数なしの「git branch」で一覧を確認できる
GitHubの設定内容を確認・変更する
GitHubの設定内容を確認・変更するには、「git config」コマンドを利用します。
・設定内容を一覧で表示するには、「git config」コマンドでオプション「–list」を設定。
localの設定内容を確認したい場合は「$ git config –local –list」で実行
・全ての設定内容を表示したい場合は「$ git config –list」で実行
・ユーザー名を設定・変更する場合は、引数に「user.name」を指定して実行
$ git config –global user.name [ユーザー名]
・メールアドレスを設定・変更する場合は、引数に「user.email」を指定して実行
$ git config –global user.email [メールアドレス]
ファイルを比較する
「git diff」コマンドで、2つのファイルを比較できます。diffを使うと、リモートリポジトリに変更したソースファイルをマージするときに、変更内容が反映されているか、他者が編集した内容を消していないかなどを確認できます。
・git configの書き方は
$ git config [種別] [設定項目] [変更内容(値)]
種別は、「system」「global」「local」に分けて設定できます。
リポジトリにtagをつける
「git tag」コマンドで、ファイルにタグをつけて区別できます。例えば、ver1.0 → ver1.1など、コミットごとにバージョンを付けて管理したい場合などに便利です。tagには「注釈なし」コマンドと、簡単なコメントが付けられる「注釈あり」コマンドがあります。
・git tagの書き方は
# 注釈なしタグ
git tag [タグ名]
# 注釈付きタグ
git tag -a [タグ名] -m [“コメント“]
GitHubでファイルをダウンロードする
GitHubのファイルは、パソコンにダウンロードして使用できます。
■GitHub上でのダウンロード
・GitHubにサインインし、キーワード検索
・目的の公開プログラムを選択
・ファイルを選んだら、右下の「Download ZIP」のボタンをクリックしてダウンロード
■Gitで管理されたファイルのダウンロード
Gitで管理されているファイルをダウンロードするには、「git clone」コマンドを使用します。
・Windowsならコマンドプロンプトを、Macの場合はターミナルを開いてコマンドを実行
$ git clone “url”
“url”には、GitHub上で検索したプログラムに表示されているURLをコピーして、コマンドプロンプトやターミナルに貼り付けます。
GitHubのスキルは必ず身につけておこう
最近はソフトウェア開発をチームで行うことが多くなり、GitHubはエンジニアにとって欠かせない開発ツールとなっています。GitHubにはソースコードを共有できる様々な機能があり、ソースコードの管理にかかるコストを削減できます。また、先進的な機能が続々アップデートされるので、これからも需要が増えると予測されます。
今後エンジニアを目指す場合も、転職する際にも、GitHubの知識や使いこなせる技術は、ぜひ身につけておきたい必須スキルと言えるでしょう。
まとめ
GitHubは、開発プロジェクトで使用されることが多く、エンジニアの採用では、GitHubを使えることを前提に、条件設定をしている企業が増えています。また、Githubを公開する際に作品やコードを公開している人もいますが、採用側の面接官は、GitHubを検索するケースが少なくありません。Githubの整備をしておくことがエンジニアの選考にもつながるので、日頃からコードを整備するほか、Github内を最新にアップデートしておくことも重要です。
採用担当者や現場の責任者の方が、Githubをチェックしますので、日々、作品やコードをアップデートすることで、自身の技術力をアピールしましょう!!
エンジニアや開発者への就職や転職を考えているなら、GitHubの知識やスキルを習得して、経験を積んでおくようにしましょう。
未経験からITエンジニアに転職する方も増加してます。自身で身に着けたスキルを活かして、ネクストキャリアを作りましょう。
コメント