駆け出しエンジニアが知っておくべきGitHubの利用法

プログラミング

こんにちは。GitHubを知っていますか?

「はい、知っています。でも…なんだか難しそう…」
「GitHubについてなんとなく知っているけど…でもなにが便利で、どんな使い方をするのかわからない」
「会社の人に言われてGitHubのアカウントをつくってみたけど、この後どうすればいいのだろう…」

はい。この記事はそういうプログラミング初心者のためのものです。

この記事を読めば、GitとGitHubについて簡単なおさらいができて、GitHubについて具体的で便利な利用法がわかるようになります。
ぜひ最後までおつきあいください。

プロブラミング初心者が知っておくべきGitHubの基礎知識

その前に、GitとGitHubについて簡単におさらいをしておきましょう。

Gitとは?GitHubとは?

Gitは、ズバリ『バージョン管理システム』です。
バージョン管理とは、変更後のバックアップをとっておき、必要なときはいつでも好きな時点に戻れるようにするものです。

プログラミング中に
「あー失敗したー。あれをやってしまう前に戻ってやり直したい…」
というときがありませんか?
Gitはこういうときに使えるタイムマシンのようなものです。

そして、GitHubはこのバックアップをネット上に置いて共有できるようにしたものです。
ネット上にあるので、この後説明する便利な利用法が可能になるのです。

ローカルリポジトリとリモートリポジトリ

英語の辞書によると、リポジトリ(repository)とは、『貯蔵庫』『保管庫』のことです。
Gitでは、リポジトリとは過去の状態が記録されているバックアップ全体の『保管庫』になります。

自分のPC内にあるリポジトリを『ローカルリポジトリ』、GitHubなどのようにネット上にあるリポジトリのことを『リモートリポジトリ』といいます。

コミットとプッシュとプル

『コミット』は、ローカルリポジトリ内の変更を記録することをいいます。
変更日時や変更内容などの情報が記録されます。

『プッシュ』は、ローカルリポジトリの変更をリモートリポジトリに反映することです。
ローカルの変更をリモートにプッシュ、つまり”押し込む”わけです。

『プル』はその逆で、リモートリポジトリの変更をローカルリポジトリに反映することです。
リモートの変更をリモート先からプル、つまり”引っぱって”くるのです。

チェックアウトとブランチ

『チェックアウト』とは、指定した時点のファイルなどのデータを、作業用のディレクトリに反映することです。
タイムマシンに乗って、好きな時点のコミットに移動することができます。

『ブランチ』は、リポジトリのコピーのようなものをつくり、そのコピーを使って、並行して開発ができるようにする機能です。
例えば、現在のプログラムに何か新しい機能を追加するときに、その機能開発用のブランチを作ります。
そのブランチで行った変更・追加は、元のプログラムには何の影響も与えません。
開発中に何かトラブルがあっても元のプログラムはそのままで安全です。
また、複数のブランチをつくり、複数の機能を並行して開発することもできます。

どのブランチの、どのコミットにもチェックアウトを使って移動することができます。

初心者が活用すべきGitHubの利用法3選

さて、ここからは、初心者に活用して欲しいGitHubの利用法を3つ紹介します。

バックアップとして使う

ひとつめは、『バックアップとして使う』ことです。

GitHubはインターネットにあるリポジトリですので、ローカルリポジトリの状態をプッシュすればネット上にバックアップができあがります。
ローカルのPCに何かあって「データが消えちゃった!」となっても大丈夫です。
GitHubのリモートリポジトリをプルしてくればデータはすぐに復活します。
しかも、過去の変更の記録付きです!

また、別のPCでリモートリポジトリをプルしてくれば、同じ環境を再現することができます。
つまり複数のPCの状態をシンクロさせることができるわけです。
(セキュリティなどの問題はありまが)会社のPCと家のPCとを同じ状態に保つことができます。

共有するために使う

GitHubの利用法のふたつめは、『共有するために使う』ことです。

先ほど、「複数のPCでデータをシンクロさせることができる」と書きました。
複数人のPCでこれを行えば、ファイルやデータを共有することができます。

「ちょっとこのコード確認して欲しいな…」
というときに、相手がその場にいなくても確認してもらうことができます。

確認する側も、変更の履歴も含めて見ることができるので、「なぜ今の状態になったのか」までわかります。
よって、何か対応を求める場合でも適切な指示をすることができます。

この記事では詳細に触れませんが、複数であなたのプログラムを共同開発することさえできるようになるのです。

また、Zip形式でまとめてダウンロードできますので、GitHubのアカウントを持っていない相手ともファイルやデータを共有することができます。ただし、この場合は変更の履歴までは共有できません。
この機能を使えば、自分のソースコードを広く配布することにができます。

自分を知ってもらうために使う

GitHubのリモートリポジトリは、非公開と公開を設定できます。
「社内での開発なので、社外から見られたくない」というときは、非公開にして、社内の必要な人にだけアクセスできるように設定できます。

一方、公開とすれば誰でもリモートリポジトリ内のファイルやデータを見ることができます。
相手もGitHubのアカウントを持っていれば、ソースコードの中身だけでなく、コミットの内容を通してあなたがどのようなプロセスで、どんな開発をしてきたのか確認するこができます。

これは、あなた自身を知ってもらう貴重なデータでもあります。
いわばネット上にある、あなたのエンジニアとしての『経歴書』『履歴書』と考えることができます。
うわさでは、「シリコンバレーなどの海外でエンジニアの面接を受けるときは、履歴書と一緒にGitHubのアカウントも聞かれる…」なんて話もあるくらいです。

まとめ

以上をまとめます。

  • Gitはバージョン管理システムで、GitHubはGitのリポジトリをネット上に置いたもの
  • GitHubのは、ネット上にある単なるバージョン管理以上の使い方がある
  • GitHubはファイルやデータのバックアップにもなる
  • GitHubで、自分の複数PCでファイルやデータを共有してシンクロすることもできる
  • GitHubで、仲間とファイルやデータを共有することができる
  • GitHubではファイルだけでなく、作業のプロセスも共有できる
  • だから、あなた自身をよく知ってもらう材料になる

この他にも、『Issue』や『Pull request』などの機能を使ったコミュニケーションツールとして使えることなど、ここでは紹介できなかった便利な機能がいっぱいあります。

Gitというと、「コマンドラインでの入力とか難しそう…」と構えてしまいがちですが、GUIのアプリケーションもありますので使ってみると思っている以上に簡単です。
脱初心者プログラマーの第一歩としてぜひお試しください。

コメント

タイトルとURLをコピーしました