Gitの使い方1

説明に入る前に

まず初めに、今回の説明では引用が多くなる気がするので引用あるいは参考にしたサイトのリンクを以下に載せておく。

・「エンジニアHub」より

今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説

・「ネビ活」より

GitのCommitとは?AddやPushとの違いは?初心者向けに図解でやさしく解説!

・「note.nkmk.me」より

git add -u と git add -A と git add . の違い

筆者が色々調べている中でも良いと思ったサイトなのでかなり参考になるはずだ。というかこれらを見ればかなり分かるようになる。そのためこれらの外部サイトに任せるところは任せて、補足を付け足しながら実際にサイトを共同で作っていく流れを書いていこうと思う。

GitHubって何?

早速だが

今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説

のサイトをまず見てみてほしい。すべて読まなくても「GitHubの基礎用語」程度まででよい。


../_images/GitHub.jpg

さて筆者なりにも説明をしてみよう。

まず、GitHubとは別物としてGitがある。Git分散型バージョン管理システムであり、これによりローカル(自分の手元のPC)でファイルを編集・変更し、その変更情報を登録・あるいは前の情報に復元等ができるということである。サイトの例にあったように複数の人が同時に同じ箇所の変更を行っていた場合不都合が生じる。

例えばAさんとBさんが同時に変更を行うと、コードとして一貫性がなく全体として繋がらないコードになる可能性がある。あるいはAさんがたった今編集したコードをもとにBさんがさらに編集したとする。その後にAさんの書いたコードに間違いがあったことが発覚すると、Bさんの編集作業にまで影響が出る。

しかし分散して管理していれば、AさんとBさんの変更は互いにすぐに影響が出るわけではなく、また誤りがあっても自分の分を修正するだけで済むということである。

これに対してGitHubはGitを用いたソフトウェア開発プロジェクトのための共有ウェブサービスである。Gitで分散して各々が編集したものを統合するためのウェブサービスという認識を筆者はしている。使い方としてはまずGitHubのウェブ上にある大元のファイルを手元にコピーする。そのコピーファイルを編集等してその情報をGitで管理する。最後にコピーに対してした変更を大元にも反映する。こうすることで先に述べたような集中型のリスクを避けつつ変更した後の実行結果を手元で確認できるほか、また大元に反映する過程で他の共同開発者にその変更が適切かどうかをチェックしてもらえる利点もある。

以上がGitHubとGitについての簡単な説明である。


でもたかだかサイト作るのにそこまでする必要あるの?と思うかもしれない。GitHubを使う大きな理由はもう1つある。というよりこちらがメインの理由である。

それは無料でサーバーを使えて自分のウェブページを公開できるということである。

Sphinx等を使ってウェブページを作成しても、それを公開するための設備や環境がなければ意味がない。サイトを公開するためには基本的にレンタルサーバーを借りるか、あるいは自社(自宅)サーバーを用意するということになる。レンタルサーバーは当然利用にお金がかかるし、自社サーバーであればそのための高性能なパソコンが必要で、またそれをセッティング・メンテナンスする技術も必要だ。

しかしGitHubを使えば、GitHub上にファイルをアップロードするだけで簡単にウェブページを公開できてしまう。しかも無料で。

あとは何かとGitHubからコードをダウンロードしたりすることもあるのでGitHubについて知っておくことは損ではないし、共同開発っぽくてかっこいいし、T先輩リスペクトもある。

ということでとにかくGitHubを使ってみよう!