見出し画像

【ブログ】Gitって何? |バージョン管理システムについて学ぶ素人の話

皆様こんにちは、はじめまして。moirです。もいあ、と読みます。

新年あけましておめでとうございます。今年もどうぞよろしくお願いいたします。
▼moirはこういう者です。

突然ですが、Gitについて勉強します。

新卒組はもちろん、転職組も学んで損はないです。
というかおそらく必須科目です。
特に転職組。Git使えますって重要じゃないですかね。

エンジニアやWEBデザイナーを志す人の必須科目


例えば、エンジニアとデザイナーが在籍して、プロジェクトを一緒にしているとしよう。もうね、デザイナーが「Git使えますよ」って言ったら絶対に一目置かれますよ。めっちゃかっこよ。

ちなみに、moirは理解力が皆無なせいで大変苦労しています。それゆえにアウトプットして理解力を深めようという作戦です。

Gitって何?

「コミットしてプッシュ」
「リポジトリ」「ローカル環境」「リモート」
「ファストフォワード」

現場にいるとカタカナばかりである。特に聞き慣れない単語には「???」と首を傾げることも多い。
エンジニア御用達のGitについて、ぺえぺえの私と一緒に学習していきましょう。
(間違った表現などをしている可能性がございます。ご了承ください)

Gitとは…

このアイコンだよ。

読み方は「ぎっと」。
簡単にいうと「バージョン管理システム」のひとつ。
Linuxの生みの親"リーナス・トーバルズ"によって開発され、多くのプロジェクトで採用されているシステムです。

バージョン管理システムってどういうこと?

ファイル作成中にやってしまうごく稀にやってしまうミス。

「あっ!間違えて消しちゃった!しかも上書きしてアプリ閉じちゃった!!」
こんなことありませんか?
これでは、復元する方法がなければ、元に戻すことができません…。
(moirはIllustratorでごく稀にやってしまいます)

しかし、Gitでファイルを管理すると、差異なく復元することができます。
なぜ?
なぜなら、Gitとは「編集(変更)履歴」を管理するシステムのことだからです。

特に開発業界は、たくさんの人がひとつのプロジェクトに携わっています。
分散型の開発では「誰がどこに手を加えたのか」「誰がどこを開発しているのか」という情報は大変重要です。

Gitで管理するメリット

  • 誰が作ったのかわかります。

  • 名前とコメントをつけることができます。

  • 修正、追記した箇所が全てわかります。

  • どんなファイルでも管理できます。

簡単なメリットをひとまず挙げてみました。
でも、まだいいところがありますよ。

  • 何かがきっかけでデータが全壊してしまったときも、復元できる!

  • 間違えて上書きしても、元に戻せる!

  • ネットワークにつながっていなくても手元にある環境で作業できちゃう!

「リスクヘッジばっかりじゃん!」って思うけど、それが重要な世界なんですね。
そして、最後の「ネットワークにつながっていなくても〜」がかなり大事なポイントです。

リポジトリの役目

リポジトリ。moirが一番最初に「???」となったカタカナです。
普通に生活していたら全然聞き慣れないですよね。聞き慣れない響きなんですよね、これが。

リポジトリってなんだろう。

英語直訳で、「貯蔵庫」「格納庫」という意味です。
お察しはつきましたか?

Gitでのリポジトリは、先に申し上げた「編集履歴」などの"メタデータ"を格納しておく場所のことです。
いろんな分野でも使う言葉のようですが、「何かを格納する場所」って認識でいいのかな、と思います。

どうやって作業するの?

おおもとのサーバ(リモートサーバ)にあるリポジトリ(おおもとの格納庫=本番環境)を、自分のパソコンの中に完全にコピーし、自分のパソコン(ローカル環境)で復元します

そのローカルリポジトリで自分は作業をします。
完全複製したコンテンツを編集するから、おおもとのリポジトリの中身は変わりませんよね。
これにより、自分の環境だけに編集をくわえることができます。

そう、自分のパソコンの中に環境が復元されるので、ネットワークに繋がっていなくても開発ができるというわけです。

そしてもちろん、ローカルリポジトリ→リモートリポジトリにコピーもできます。
そうです。
この時点で、リモートリポジトリとローカルリポジトリの二つがあるので、どちらかのデータが吹き飛んでも、復元可能なのです。
吹き飛ばさないのが、一番だけどね。

(なんかむずかしくなってきたね)

シンプルな作業手順

自分の行ったコンテンツの編集履歴は保存して、名前をつけます。*1

その後、リモートリポジトリに編集履歴を反映させます。*2

他の開発者がいれば、他の開発者のローカル環境が存在します。
リモートリポジトリに全ての編集履歴を統合しましょう。

リモートリポジトリに編集履歴を反映させたら、今度は逆。
リモートリポジトリからローカルリポジトリに完全コピーします。*3

こうすることで自分のローカルリポジトリが最新になり、最新の状態で開発をすすめることができます。

*1 この動作は「コミット」といいます
*2 この動作は「プッシュ」といいます
*3この動作は「プル」といいます

これが一番シンプルな作業の流れです。


次、機会があればまた、勉強した内容をアウトプットしていきたいと思います。

===============================================

少し半端ですが、定刻となりましたので、今回はここまで。ご覧いただきありがとうございました。

少しでも面白い、興味があると思った方は「スキ」ボタンを!フォローも是非お待ちしております。

こちらの記事も見ていってください。

いいなと思ったら応援しよう!