ただしがGitHubに興味をもったようです

IT業界のblogや求人要項に出てくるGitHubって一体なんなんだし? 僕も使えるようになってニート卒業するし! GitHubやバージョン管理システム,プログラミングを交えながらわかりやすく解説

2016/06/07

小貝鬼怒

1

GitHub バージョン管理システム プログラミング ビジネス アプリ開発 Git Linux IT

  • facebook share
  • line
  • このエントリーをはてなブックマークに追加
  • ただしが例によってPCの前でネットを見て何やらブツブツ言っているようですが…

  • こっちの会社は…ここもGitHubの使用経験必須か…GitHubってなんなんだし…

  • どうしたただし、なんでお前IT系の求人サイトなんか見てるんだ?

  • ああ、そろそろ僕も勤労の汗というモノを流してみたいと思ったんだし(キリッ

ふむふむ
  • な、なに?!何か悪いもの食べたのか?! それとも熱でもあるのか!?

  • 失礼なんだし! 僕だっていつまでもニートでいるつもりはないんだし!

  • そ、そうなんだ! ただしも遂に真人間になるつもりなのね!?

  • その通りなんだし。

  • …で、本当のところは?

  • マジメに働ければ毎月のエロゲ購入に苦労しないんだし…。

  • サイテー…。

  • …まあ、働く気になってくれたのはいいことだ。 で、何がわからないんだ?

  • ここのプログラマ求人の要項のところに「GitHubの使用経験」ってのがあるんだけど、これはなんなんだし?

  • ああ、「GitHub」か。これは「Git」という「分散型バージョン管理システム」を使用した共用開発プロジェクト用Webサービスだよ。

  • Git?

  • はと言えば、Linux開発者のリーナス・トーバルズ氏がLinuxのカーネル開発の為に開発したツールなんだよ。

  • Linux…Linuxなんだっけ…。

  • おいおい、IT系企業目指してるヤツが何を寝ぼけてるんだよ。

  • あ、UnixライクなOSなんだし。確か今は大抵のモノに入ってるんだし。

  • そうだな、お前のAndroidスマホだってLinuxベースだ。

  • そうだな…例えば、まずAというファイルに「HogeHoge」と入力して保存して閉じる。

  • ほげほげ…できたし。

  • よし。次はそれを「HugaHuga」に修正して保存して閉じる。

  • できたし。

  • よーし、じゃあ今度はそれを「HogeHoge」に戻そうか。

  • ほげ…面倒くさいし!

  • そうだな。じゃあこの場合どうしたら良かったと思う?

  • そりゃ…最初にHogeHogeって入力したのをFIleA.txtとかで保存して…

  • で?

  • で。次に「HugaHuga」にしたのをFileA_2.txtとかって名前にして保存すればバッチリなんだし!

  • ダサいな。

  • うん、ダサい。

  • えー。

  • その調子だとファイル名末尾に日付を付けたEXCELファイルを大量生産するアホ会社を笑えないなー。

  • あー…それ気になってたし。どうすれば正解なんだし?

  • まあその例でバージョン管理システムを使うのは珍しいと思うがな。さっきのHogeHugaの変更はプログラムソースコードの修正のイメージなんだ。似たような名前のファイルの末尾に数字つけて管理とかおかしいだろ?

  • そりゃそうなんだし…。

  • バージョン管理システムはそこを簡単にしてくれる。

  • と言っても、どこかに何かを保存しておかないとそんな管理できないし?

  • その通りだ。だから、まず「リポジトリ」と呼ばれる履歴管理の為のデータベースを作成して、作成して「HogeHoge」と入力したファイルを「commit」する。

  • こみっと?

  • 直訳すると「完全に預ける」かな。リポジトリにファイルを登録するコマンドだ。履歴管理データベースにファイルの最初の状態を登録する。

  • ふむふむ。

  • そしたらさっきのファイルを「HugaHuga」に変更して保存、commitする。と、リポジトリにはさっきのファイルとの「差分」が保存されるんだ。

  • えーとつまり…

  • ー HogeHoge
    + HugaHuga

    っていう塩梅だな。

    リポジトリにはこうした差分と、それが発生したcommitのタイミングが保存される。

  • なるほど。

  • で、元に戻すにはどうするかというと、「checkout」というコマンドで最初のcommitした内容を取り出す。すると、さっきリポジトリに登録したファイルが取り出せるから元に戻る。

  • あ、なるほど。逆にまたHugaHugaにしたい時は2回目のcommitを取り出せば…

  • そうだ。この仕組みを使えば「いつどこをどのように修正したか」がバッチリ把握できる。なのでさっきみたいに「ちょっと修正したけどやっぱり止めよう」なんてことも簡単にできるわけだ。

  • おお…。

  • そして更にこのcommitした内容をサーバのリポジトリに「Push」する。

  • そうすると?

  • 同じモノを開発してるヒトに修正内容を渡すことができるわけだ。

  • つまり…共同開発ができる。

  • まあその為のものだからな。

  • なるほどなんだし。…ちなみに分散型ってのはどういう意味なんだし?

  • さっき言った履歴管理用データベースのリポジトリなんだが、これは本来サーバにあるんだ。だが、それを各自のPCにも作って、全ての履歴を保存するようになってる。

  • 何の為なんだし?

  • ネットに接続できない環境でも過去の修正履歴を見ることができるだろ。

  • おーなるほど。

  • また、修正したモノをPushしようとした時に作業内容が他人と競合していた場合、手元のリポジトリでそれらのの競合を解決する作業もできる。

  • よく考えられてるんだし。

  • で、GitHub と言うのは、これをWebに載せたサービスだ。

  • 何の利点があるんだし?

  • 本来Gitというのはそれが使いたければサーバを立てて、Gitをインストールして開発プロジェクト内で共有するわけなんだが…いちいち設定するの面倒だろ。

  • そうなの?

  • やりたいかお前。

  • 便利そうだけど、面倒くさいから嫌だし。そんな時間があるなら僕は自分のアプリの開発に時間を回したいし(キリッ

  • (おーおー一丁前の口きいてるな)

    …まあそうだな。 そこで、WebサービスとしてGitを動かせるようにしたわけだ。これで誰も面倒なサーバ設定をせずにGitを使うことができる。

  • なるほど。

  • しかも基本無料だ。

  • 凄いんだし!

  • でも、そんなことやってGitHub社はどうやって収入を得てるの?

  • 鋭いね。無料だと一般に公開したプロジェクトしか作れないんだよ。

  • え…他所のヒトにも見えちゃうんだし?

  • でも、それだと企業は使えないよね?

  • そうだな。まあ公開してもいいヤツなら平気なんだが、非公開プロジェクトを作りたい場合は有料ということになるわけだ。某レシピサイトの会社みたいな大手も使ってるぞ。

  • なるほどー。

  • ただ、この公開プロジェクトは無料というのが逆に受けて、オープンソースプロジェクトなんかで良く使われるようになっている。

  • ああ、公開されてても全然問題ないし。

  • そうだ。で、そこから転じて、そこで公開されたコードを見て実力を見込まれて企業から声がかかるとか、就職活動に活用している人達も現れた。

  • 素晴らしいし!

  • じゃあ、さっきただしが見てた求人でGitHubの使用経験という募集要項があったのは、そんな風にコードを見たいからなのね?

  • 最低限Git/GitHub位は使えないと…っていう事が表向きかもしれないけど、コードを見れるっていうのは充分あるかもね。

  • Gitのコマンドはググれば解説サイトは沢山あるし、SourceTreeというGUIツールもあるから、これらを使ってもいいんじゃないかな。

  • よーしわかったし! 僕も早速何か作ってGitHubに上げてみるんだし!

  • ただし、凄いやる気になってる! 動機は不純だけど…。

  • まあやる気があるのはいいことだ。…ところでお前、プログラムなんていつ身につけたんだ? なんて言語?

  • 僕だってやる気を出せばできるんだし! 1日でこんなのができたんだし!

  • え…わー凄い、猫が歩いて…って、あれ、これ…

  • Scratch…いやお前、これはプログラムのコツを掴む為の学習ソフトだぞ…こんなん使えても会社は雇ってくれないって…

  • え?え?そうなの!?

  • まあ…ただしだもんね…。

  • まずはJavaとかSwiftとかPythonとかRubyとか…

    まぁ、プログラマーじゃなくても原稿管理とか契約書の管理なんかにも使えるからな…。頑張れよ。

  • そうね、じゃ、頑張ってねー。

  • ただし プログラマーの道はまだ始まったばかりだし!

  • おわり

Copyright © VOYAGE GROUP, Inc. All Rights Reserved.