Gitの使い方(初心者向け) バージョン管理入門
記事内に広告を含む場合があります。

Gitの使い方(初心者向け) バージョン管理入門

Git バージョン管理システム

GitHub 公式
GitHub(ギットハブ) 公式サイト 日本語版.

 

 

Gitバージョン管理とは?

 

ソースコードのバージョン管理システム。

 

「プルリクエスト(pull request)」という仕組みが特徴っぽいです。
「ブランチ」「マージ」「コードレビュー」という用語も頻繁に出てきます。

 

GitHub(ギットハブ)という、公開サーバ上でオープンソースなどをバージョン管理するサービスが有名ですが、企業向けに企業内サーバで管理するサービスがあります。

 

Gitのバージョン管理の仕組みをざっくり絵にしてみました。
バージョン管理しない状態、旧来のバージョン管理の仕方と比べて説明します。

 

バージョン管理しない状態

バージョン管理なし

 

複数で開発をおこなう場合、バージョン管理していないと「誰かの修正箇所を上書きしちゃった」という事故が起こりがち。

 

ひとりだけで開発している場合でも、何かの拍子にバージョンが戻っちゃった!?ということが起こり得ます。

 

古いタイプのバージョン管理

SVN(サブバージョン)などを使ったイメージ。
古いバージョン管理

 

修正中は、ソースがロックされて編集者以外触れなくなるので「上書き事故」は防げます。

 

ただし、ソースを編集するAさんの責任が重大に。

 

「はやく修正しろ、スケジュールが遅れる」
「テストはしっかりやれ、他に迷惑がかかる」
「なんでこんなバグを出した、今後の事故防止のために原因を述べろ」

 

うっ…書いてて胸が痛くなってきました。

 

この仕組みだと、Aさんが超絶忙しいけど、Bさんの手が空いてる…ということもちょくちょく起こります。

 

小~中規模はこれで良いかも知れませんが、大規模だとツライ。

 

Gitのバージョン管理

Gitのバージョン管理

 

ブランチというのは、その時点のソースコード全体を「自分専用バージョン」のように扱うこと。
これにより、同時に多人数で同じソースを修正可能になります。

 

その後、プルリク(Pull Request)をして、自分のブランチをおおもとのソースコードにマージ(反映)してもらいます。
マージには担当者がいて、ソースコードの修正前後を見てレビューしてからマージ。

 

このため、修正内容を最低二人以上でチェックすることになり、責任の重さを分散するとともにバグの発生を抑えられます。
多人数でソースを修正可能になるため、メンバーへの負荷を分散できるのもポイント。
※ただし、同じソースの同じ箇所の修正ができるわけじゃありません。

 

デメリットは…

  • 他人のソースをレビューするなんて仕事が増える
  • マージ係を置くなんて、コストがかかる
  • 今まで暇で楽だったのに、作業を細分化されて仕事が増えてイヤ

…という人から抵抗されるという点。かも。

 

Gitをゼロから理解するには?

知識ゼロの状態から、Gitを理解するための良記事をまとめました。
上から順番に読むと、徐々に理解が進むと思います。

 

デザイナのためのGit入門
「バージョン管理って何のためにすんの?」というところから、GITの便利さまでザックリわかるスライド。
デザイナー向けに、コマンドなどを排除して解説しているのでイメージがつかみやすいです。

 

「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門 (1/3):かんばん!~もし女子高生がRedmineでスクラム開発をしたら(5) - @IT
女子高生の会話風にGitの使い方を説明している記事。

 

イラストでわかる!git入門の入門 - アシアルブログ
味のある手書きイラストで、バージョン管理に必要な内容を解説しているブログ。

 

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
初心者向けにわかりやすい猿のイラストつきで、Gitを解説している良記事。

 

こわくない Git
コマンドの使い方にまで踏み込んだ、詳細なスライド。

GitHubへの転職

GitHubで社員募集をおこなっていたので、チェック。

 

GitHub Careers(社員募集)

 

日本での募集は、Deal Desk Manager - APAC、Enterprise Sales Managerという営業職。法人向け営業かな?のみでした。

 

スラックは、社員募集のページがそもそも英語で、応募も英語ということになりそうです。

 

福利厚生も充実していて、職種によってはリモートワークも可能。

 

健康保険は会社が100%負担だし、子供が生まれたら有給家族休暇が100%。

 

フィットネスジムや、禅ルームへの瞑想も完備。

 

SEとして感じるのは、社員を大事にしてくれそうだなぁーという印象です。外資系に人がガンガン流れていくのも当然かも知れませんね。

 

ただ、外資系の弱点として、日本ではローカライズはおろか、開発には関われないことが多いという点。

 

技術よりの営業職としてなら、可能性はあるかも知れません。

GitHubで公開したコードから、年収予測

プログラムのコードを解析して年収予測をしてくれるサービスがあります。

 

Findyというサービスです。GitHubでOSS(オープンソース・ソフトウェア)などを公開しているあなたは要チェック。

 

参考)ITエンジニアの年収をGitHub解析から予測可能に。OSSが年収アップにつながる時代へ。 | Findy Engineer Lab - ファインディエンジニアラボ

 

私自身を含め、私の周りにはオープンソースへの取り組みをおこなっているエンジニアは居ませんでした。

 

「そんな暇ない」という言い訳をしながら…

 

自分用の勉強をするなら、アウトプットの場としてGithubを利用するのも良いかも知れませんね。