日々考えたり

プログラミング学習記録、読んだ本の感想など

Gitとの出会い

GitHub、巷ではとてもメジャーだとのことですが、実際使ったことがなかったので、興味もあり、UdemyのGit入門を受講することにしました。

Gitとの出会い・・?

f:id:sig_nai:20200411215452j:plain

本当にトレンドについていけていないのが悲しいですが、かなり昔から「Git」というバージョン管理システムがあることは一応、知ってはいました。

ちょうど仕事に適したちょっとしたバージョン管理システムが欲しくて、いろいろ無料ツールを調べていたところ、Gitってなかなか使いやすそうだな、ということで知ったのがGitとの出会いです。その時は何かのGUIで動かしてみただけだったのですが、社内で話が上がっていた、Subversionより使いやすそうだな、という印象でした。

そのころ、Gitのことをずっと「ジット」と読むものだと思っていました(笑)(正しくは「ギット」らしいですね)

 今日、Gitのことをいろいろ調べていた時に、その時の記憶がよみがえってきてほっこりしました。

Gitが生まれたとき

Udemyの教材で、GitはLinux開発者のために作られた、とあったので、Gitの使い方を学ぼうとしていたつもりが、そちらのほうへ興味が移っていきました。

そして興味深かったのが、下記の記事。

gihyo.jp

Linuxカーネル開発者、Linus Torvalts氏の手によって、Gitが生まれる瞬間の生々しい現場の様子を、Gitメンテナの濱野純 氏が伝えてくれています。

 

Linusさんがこういうバージョン管理システムが欲しい、とサンプルを作り、それがメーリングリストにながれてきたので、濱野さんが見てみると、

彼が書いたコードをダウンロードしてみたら,1,244行しかなくて。

 

弾:全部Cですか?

濱:そうですね。

 

。。。 神ですか。そのソースコード、ぜひ拝見したいですね。。。

 

GitとGitHubは別物?

上の記事によると、GitHubは、もともとあったGitコミュニティとは別のところで作られたもののようです。それはGitがLinux開発者に使われていたのに対して、GitHubRubyの開発者で使われるようになったからじゃないかとのこと。

それで同じ「Git」だけれども、お互いが疎遠だった時期もあったようです。でも今はそうでもない様子、ということは、優れたシステムは、たくさんの優れたエンジニアにとって関わらずにはいられないものだからなのかもしれません。

 

「Git」が優れている、ということをLinusさん本人が自信をもって語っている、下記記事も注目です。

本の虫: gitの10周年を記念したLinus Torvaldsへのインタビューの翻訳

 

gitは基本的に俺の要求を満たすために設計されて、結果はご覧のとおりだ。

 

「俺の作業」とは、Linuxカーネル開発における、面倒で難しい作業のことです。

 

Gitとは・・・

f:id:sig_nai:20200411215541j:plain

従来あったバージョン管理システムと比較して、劇的に変わったのはそのファイルマージ方法にあるそうです。

私の理解では、

あるファイルAを3人で別々に編集し、ファイルA-1、ファイルA-2、ファイルA-3ができたとする。。

 

(従来)

それぞれが各ファイルを傍流にUpload。ローカル環境でマージした後、マージ後のファイルを本流としてUploadする。

 

(Git)

それぞれが各ファイルを待機ステージにUpload(commit)。待機ステージでマージした後、マージ後のファイルを公開サーバーにUpload(push)する。

 

という理解ですが、間違っていたらこっそり教えて下さい。。。