よく Git, GitHub という言葉を耳にすると思いますが、
ここではそもそも Git, GitHub とは何か、なぜ使うのかについて説明していきます。
Git とはプログラムのソースコードなどの変更内容を記録・追跡するための分散型バージョン管理システムです。
Git では各ユーザーのワーキングディレクトリに、全履歴を含んだリポジトリ(作業場)の完全な複製が作られるので、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができます。
例えば、プログラミングをしていると日々ファイルの中身は変わっていきます。この変遷の履歴を管理し、必要に応じて前のものに戻したり、途中で枝分かれして別の変更を加えたりするためのシステムです。
かんたんに言うと、オフラインでもプログラムの変更履歴を管理できるシステムです。
GitHub とは、Git の仕組みを利用して、世界中の人たちがプログラムコードなどを管理できるウェブサービスです。
GitHub は様々なプロジェクトのために Git のリポジトリをホスティングできるサービスです。Git は基本的にコマンドラインツールですが、GitHub は Web 上で扱うことができます。
自分が Git で管理しているファイルをウェブサービスでも管理するものです。
GitHub を使うと、自身が Git 管理しているしているリポジトリを Web 上で管理できるようになります。
したがって、PC を変えたり別の PC で作業するときに GitHub 上にあげたコードを持ってくれば簡単に作業を開始することができます。
誤って自分のファイルを消してしまった時などにも、Web 上で管理してあるので安心です。
もちろん、他の人に見せたくないようなものでも正しくセキュリティを設定をすることで問題なく管理することができます。
その他にも、GitHub にはたくさんの便利な機能があります。
プロジェクトのタスク管理に使える 「Issues」、「Projects」 や、コードレビューを効率化できる 「Pull Request」 などのチーム開発に役立つ機能が Web 上から使えるようになります。
その他にも、チーム開発で一番大変なコード統合を Git の機能を使うことによって自動的にしてくれるので、開発効率が上がります。
コードレビューでは、コードの差分や、指摘と対象のコードがひと目で分かるようになり、バグ修正や機能追加がどの時点のバージョンで実装されたのかも一目瞭然になります。
要するにチーム開発やコード管理、タスク管理などにおいて便利なので使うと様々な恩恵がありますよ、ということです。
また GitHub には以下の画像のように、自分の contribution 数(ざっくり言うとどれだけ自分が作業したか)を可視化することができます。
これで自分が今どれだけやっているかを確認できますし、続けるモチベーションにもつながるので個人的な GitHub を採用する理由の一つとしてこの機能が挙げられます。
Git, GitHub に関しては、実際に自分の手をたくさん動かすことによって徐々に理解していくことができます。
この説明を聞いてよく分からなくても全然問題はありません。
たくさんコードを書いて、どんどん使っていきましょう!
