メインコンテンツまでスキップ

Gitの概要紹介

Gitは何をしてくれるソフトウェアなのか?を紹介

「バージョン管理」とは、このファイルが、いつ、誰が、どこを編集したのかを記録すること

「バージョン」と言われて最初に思い浮かぶのが、「ver 1.0.0」とか、ソフトウェアのバージョンであるかもしれませんが、開発の現場では、それでは単位が大きすぎます。

ここでいうバージョンとは、ファイル単位での話です。

「このファイルが、いつ、誰が、どこを編集したのか?」それを記録することが開発・保守にとって大切なことであることは明白ですが、バージョン管理ソフトウェアが普及する以前では、現場ではすべて「運用」でナンとかしようとしていました。

壁にはこんな張り紙が。

「ファイルに日付を入れて、バックアップを取ること」

「ソースコードには編集者と編集日時をコメントで残すこと」

それゆえ、こんなファイル郡を見ることは日常茶飯事でした。

「完成したぞ!納品だ!」index.html2002/07/20 14:00
「追加要望が来た!このセクション消せと言われたけど。また気が変わるかも。バックアップしとこ」index_20020730.html2002/07/27 11:00
「ん?今気づいたけど、僕が知らないコードが追加されてる……一回戻すか」index_20020730-2.html2002/07/27 15:00
「OK、今度こそ完成!再納品!」index_20020731_final.html2002/07/31 11:00
「しまった。修正漏れがあった。」index_20020731_final2.html2002/07/31 15:00
・・・時を経て
「え、最初に消したパーツを使いたい?もちろん残してありますよ。このバックアップのどこかに\(^o^)/」bkup_200201028(フォルダ)2002/12/23 15:00

index.html 2002/12/23 15:00

<!-- N20020930 コメントアウト -->
<!-- <div class="flex flex-nowrap py-5 px-2">
<section class="card py-2">
<h3>サンプルタイトル</h3>
<p>サンプルテキストサンプルテキストサンプルテキストサンプルテキストサンプルテキスト</p>
</section>
</div> -->


<div class="submenu py-5 px-2">
<ul class="menu py-2"> <!-- S20021028 ULに変えて様子を見る -->
<li>メニュー1</li>
<li>メニュー2</li>
<li>メニュー3</li>
</ul>
</div>

バージョン管理を運用だけで解決するのは難しい!

一人であっても限界のあるバージョン管理を、チームで行うのは、更に難しさを増します。

また、インタープリタ言語であるphpや、ドキュメントとしてそのまま配信されるHTMLにコメントが蓄積されていくのも、気持ちの良いものではありませんし、コメント自体がミスである可能性も捨てきれません。

またかつて言われていたことですが、「怖いのは削除よりも上書き保存」という迷言があります。

削除してしまったファイルには、救済処置があります(ゴミ箱に行ってたり、復旧ソフトを使ったり)が、上書き保存では対処のしようがありません。。。

これらの問題を解決・軽減するために生まれたのが、Gitです。

Git で出来ること

先に上げた、「このファイルが、いつ、誰が、どこを編集したのか?」という情報を無限に、どこまでも残していくことが出来ます。

ただ記録を残すだけではありません。

フォルダを、まるごと過去の状態に戻したり、過去のコードと今のコードを見比べて、変わっているところだけを見つけたり、またそれらを仲間と共有したりという機能が用意されています。

アンドゥ・リドゥの感覚で、開発初期から最新までを自由に行き来できる、Gitはまさに、タイムマシーンです。

Git はどこにいるの?

インストールをしたのに、アプリケーション一覧にそれらしきものもない。Gitはどこにいるの?と聞かれることがあります。

Git本体は、コンソールアプリケーションといって、マウス操作の画面を持ちません。

マウス操作の画面は、「Gitクライアント」と呼ばれるサードパーティ製の別のソフトウェアで実現されます。

Gitクライアントには、いくつも種類がありますが、VSCodeもGitクライアントの機能を持ち合わせており、近年利便性が上がってきたと思うので、このカリキュラムでは、VSCodeを使用して行こうと思います。

その他 Git クライアントの有名所

余談

冒頭の例は、ただやるにしても、改善の余地はまだまだあるというツッコミが聞こえてきそうですが、運用を突き詰めれば突き詰めるほど、壁の張り紙はどんどん大きくなり、ルールを守れないこととかで社員のフラストレーションは溜まり、新人教育にも手間がかかり、不具合のレポートにも時間もかかるし、ゆえに追加修正の見積もりもぜんぜん出てこない。制作現場の問題は、営業さんや顧客へと、波及していくわけです。

実は、Gitのもたらした社会革新は計り知れません。