はじめに
エンジニアを志して皆さん勉強を始めていきますが、gitに関して知らない方、結構多い印象ですね。
わかってしまえば非常に便利なgitですが、概念が少し分かりづらいですよね。
いきなり触るとなった場合にも困る事がないよう、経験のない方向けにシリーズとしてまとめていこうと思います。
gitってなんなの?
一言で言うと、バージョン管理ができるシステムです。
例えば、OSアップデートなどは一度あげてしまうと基本的には戻すことはできないですよね。
もしこれが自身の作業に関してであればどうでしょうか。
一生懸命実装したコード、もしくは、たくさんの時間をかけて作成したデザイン、これが一つのミスで吹き飛ぶとしたら想像を絶するものがありますよね、、、。
そこでそんな事故を防ぐために使用するのが、gitというわけです。
gitは先ほど述べた通り、バージョン管理ができるシステムなので、バージョン(変更履歴)から作業を戻したり、進めたりすることが可能になります。
これにより、先ほどの作業が失われてしまうリスクを抑えることができるというのが、一つのメリットになります。
また、大きなメリットとしてもう一つ重要なものがあります。
それは、複数人での作業をスムーズに行うことができる、という点です。
まず、gitがない世界線での作業を想定すると分かりやすいですが、バージョン管理できないという事は、人数が多ければ多いほど差分保存による人為的リスクが跳ね上がる事になります。
これにより誰かの保存が自分の作業をまっさらにする可能性があるという事です、、、。
そんな事になるとミスした側も、ミスによる被害者も夜な夜な眠れぬ日々を過ごす事になってしまう、これを解決するシステムがgitというわけです。
gitは誰かと同じファイルの修正を反映すると差分に影響がある旨を通知する機能があります。
これにより、無意識のうちに誰かの差分を消失する事がないというわけです。
また、編集した履歴を複数人で共有する事ができるので、問題が発生した際に履歴を見て原因の特定する事も容易です。
こうした理由から、gitはプログラマーだけではなく、デザイナーやライターなど業種問わず利用できる、現在では必要不可欠と言っても過言ではないシステム、それがgitです。
GitHubってなんなの?
gitのご説明をしましたが、現場やよく話に出てくるのって、GitHubですよね。
簡単に申し上げると、gitの仕組みを利用してweb上で簡単に利用する事のできるサービスです。
gitはコマンドラインツールの使用して操作していきますが、GitHubはWeb上でグラフィカルに扱う事ができるので、gitを使用するハードルが非常に低いです。
これによりエンジニアではない層でもGitHubを使用する事で、バージョン管理が容易になるという事です。
GitHubは無料で使用できるという点に関しても、ハードルが低いと言えますね。
また、GitHubにはgitにはない独自のシステムを備えています。
- フォーク
- フォークの先端のようになっていく事からこの名称となっているようですが、誰かの差分からコピーを作成し、独自に変更が可能になる便利な機能です。
- プルリクエスト
- 自身の変更を反映したい際に、見る側に対して差分をわかりやすく通知し、マージ対象の差分を簡単に評価が可能な機能です。 これにより、知らないうちに改変されることを避けることができ、また、周囲に自分の成果物に対して意見を仰ぐことが容易になります。
- マージ
- 自分の差分を瞬時に別の差分へ適用する事ができる機能です。 これにより、好きなタイミングでボタン一つで簡単に作業を統合する事ができるので、チーム開発において安全に、より簡単に差分管理が可能になります。
以上がGitHubにおける重要な機能になります。
上記機能がある事で、GitHubは非常に人気のある重要なサービスであるわけです。
さいごに
Gitに関しては、理解してしまえばこれ以上ないくらい便利なシステムですが、理解するには少し複雑ではありますね。
プログラマはもちろん、デザイナーなど非エンジニアでも利用必須なシステムだと感じているので、是非触ったことない方はチャレンジしてみてください。