Webエンジニアがよく使うGitとは?勉強オススメサイト3選。
これからWebエンジニアを目指される方向けに Gitの勉強に役立つサイトをまとめてみました。
GitはWeb系の現場では必須のスキルといえるほどのものでどちらかというと最低限「できて当たり前」という感じで使われます。
Gitって分散管理とか難しそうな単語で説明されているのでとっつきづらいですが、下記で紹介するようなサイトを使って基本的な部分を理解し、繰り返し使っていけば徐々に使いこなせるのでぜひ参考にして頂ければと思います。
Gitとは?
分散型のバージョン管理ツール
Gitは他の多くのサイトでも紹介している分散型のバージョン管理ツールになります。簡単に説明するとバージョン管理ツールというのは、プログラム(ファイル)をリポジトリというソースの貯蔵庫のような場所に保存して、ファイルの変更履歴などを管理できるツールのことをさします。
他のバージョンの管理ツールとしては、CVS(CSVではない)やSuversin(SVN)などがあります。
バージョン管理ツールはいくつか存在するのですが、Gitは分散管理のバージョン管理システムであることが他のバージョン管理ツールとの違いになっています。
通常のバージョン管理では、リポジトリは開発者の間で一つでそれに対してソースをコミット(変更を確定させる)させますが、gitの場合は、リモート環境にあるリモートリポジトリと各開発者のPC内にあるローカルリポジトリがあります。
リポジトリがそれぞれ存在することによって開発者ごとにファイルの更新履歴を残しておいて、良いタイミングでその履歴をマスターのリモートリポジトリに反映するということができます。
集団での開発に最適
Gitが分散型のバージョン管理ツールであることは説明しましたが、Gitを利用すると集団での開発が非常にスムーズに行われるようになります。
Gitは次の
- オートマージ
- ブランチ
- プルリクエスト(Gitの機能でなくホスティングサービスの機能)
最初に説明すのがオートマージの機能で、Gitの場合複数の開発者が皆それぞれ担当した変更をマスターにマージしていくのですが、変更の衝突がない限りgitが自動で差分を読み取りマスタにそれぞれの変更がぶつからない形でマージをしてくれます。
また二つ目に、ローカルやリモートリポジトリでは、変更単位でブランチをきることが可能なのでブランチAはまだレビューが終わっていないがブランチBは変更済みだからブランチBの変更だけマスタに反映してリリースをするということも簡単にできます。SVNなどだと自分で変更したファイルを覚えておいてファイル単位で変更を反映したりしますが、gitではその必要がなくマスタをマージするだけですみます。
最後三つ目に(Git自体の機能ではなくGitHubなどのgitのホスティングサービスが提供する)プルリクエストという機能があります。
この機能を使うと開発者が変更を加えて、マスターブランチにマージする前にプルリクエストというレビュー依頼のようななものを他の開発者に投げることができます。
これを行うことでマスターにレビューを通過していないソースがマージされることを防ぎ、プログラムの品質を高く保つことができます。多くのホスティングサービスではファイルの差分や変更履歴も見やすく表示してくれるのでコードレビューが捗ります。
このような点でGitは集団での開発を効率よくす進めるのに優れています。
勉強にオススメサイト3選
Gitの説明をつらつらとしてきましたが、これだけではさすがにGitを使えるようにはならないので、勉強するのにオススメのサイトを紹介します。
サルでもわかるGit入門
サルでもわかるGit入門 〜バージョン管理を使いこなそう〜プロジェクト管理ツールであるbacklogなどのサービスを提供するヌーラボさんが運営しているメディアになりますが、おさるさんのキャラクターやわかりやすい図を通して丁寧にGitの使い方を説明してくれるサイトです。
本当に一度もGitを触ったことがない!という人には是非ともオススメのサイトです。 入門編から順々にこなして行きましょう。
GitHub
世界でもっとも使われているGitホスティングサービスです。 サルでもわかるGit入門などでgitがわかってきたらGitHubでアカウントを作って実際にgitを触ってみましょう。
普通に使うぶんには無料で使えるのでテスト用のリポジトリをつくってみて、リポジトリにpushしたり、プルリクエストを送ってみたり色々遊んでみましょう。
git-flow cheatsheet
Gitの基本的な操作であるpush,marge,checkout,commitなどに慣れてきたら次は実際に現場で使われるGitFlowなどの運用方法を学べると良いでしょう。
多少現場によってローカルな運用方法のところもあるかもしれませんが、多くの現場がこれを元にした運用を行なっているので勉強しておいて損はないです。
開発を始めるときは、developブランチからfeatureブランチを切って、開発が終わったらdevelopブランチにマージ、本番にリリースする場合はreleaseブランチを切ってmasterブランチにマージして・・・・
などの文字にするとわかりづらい説明が図付きでコマンドと一緒にわかりやすく説明されています。
まとめ
以上、Gitの簡単な説明から勉強に役立つサイトを紹介しました。
サイトの利用例としてはサルでもわかるGit入門の入門編を一通りやってみてから、GitHubのアカウントをつくって色々と試してみると良い思います。
で、だんだん慣れてきたら、GitFlowを勉強して自分の開発の流れに組み込むという学習フローができれば割と簡単に身につくと思います。
最初のうちはリポジトリが複数あったり、ローカルのリポジトリが今どういうステータスなのかとかがわかりづらいですが、何度も繰り返すうちに徐々に慣れてくるはずです。
Webエンジニアになる前にある程度Gitを知っておくといざ現場に入った時にスムーズにスタートを切れるのであらかじめ勉強しておくとこをオススメしておきます。
他にもWebエンジニアが知っておいた方が良いことはまとめていますので、興味があればどうぞ