猫をだまして飛んで行く。

今興味があること・アニメの考察・映画感想などを投稿しています。

Gitの仕組みがわからない初心者がGitの仕組みをまとめた。

 

Gitは便利。いろいろな人が言います。今までのファイルの管理方法とは全く違っていて画期的かつ便利!素晴らしい!神だ!!そんな言葉を「Git」という単語と合わせて耳にします。そこまで言うならきっと便利なんだろう。でもGitと今までのツール何が違うのかがよくわからない。

そこで、素人なりに理解したことをまとめてみた。

 1.そもそもバージョン管理って何のためにする必要があるの?

 シンプルかつ簡潔に目的を説明していてわかりやすいので、こちらをご参考にどうぞ。

qiita.com

 2.Gitの理解で重要になった2つのキーワード

私が、Gitを理解する上で意味の理解が必要になったキーワードはこの2つ。

コミット(commit)

スナップショット(snapshot)

まず、この2つの単語の意味の理解を深めたい。コミット(commit)は、「(何かを)送り込む」こと。この言葉が出てきた場合、何かを送り込んでいるんだな。とイメージしてほしい。

※IT用語でも存在するがここでは言葉のイメージを優先する。

 スナップショット(snapshot)は、「保存をした瞬間のデータ(ソースコード、ファイルなど)を丸ごと保存」すること。

一旦はここまで覚えていただければと。

3.従来の管理とGitでの管理

3-1.従来の管理方法

今までの管理方法は、変更が発生した場合更新した内容のファイルを別のフォルダに入れて管理をしていた。

 

f:id:shionsamidare-0211:20191202125425p:plain

図1.管理イメージ

f:id:shionsamidare-0211:20191202130313p:plain

図2.A資料を例にした実際のファイル管理イメージ

この方法で行われていく内に、管理しているデータが大量にある場合、フォルダ内の管理が煩雑化してしまったり、誰がいつ修正をしたファイルを作成したのかがわからなくなってしまう。

3-2.Gitでの管理方法

 Gitでは従来の管理方法と異なり、保存をする時に一部のファイルではなくそのフォルダの中にあるデータ全てに対してスナップショットが撮られる。スナップショットを撮る範囲は下記画像の例で言えば、2019年1月に存在するフォルダ全てが保存範囲となる。

f:id:shionsamidare-0211:20191202131225p:plain

図3.Gitでのファイル管理イメージ。赤文字が更新。青文字が変更無しを意味する。
4.一部のファイルで修正が発生した場合

下の図で言うと2019年2月にB資料に変更が加えられたとする。その時、Gitにcommitをした場合2019年2月内のファイル全てがスナップショットの対象になる。

f:id:shionsamidare-0211:20191202135919p:plain

図4.snapshot

5.commit時の処理動作

commitは、Gitに保存をするデータを送り込む処理である。commitをすることで、Gitにデータが登録をされる。その登録をした際に生成されるものがハッシュ値ハッシュ値はDBで言うところの管理IDのイメージである。

f:id:shionsamidare-0211:20191202144122p:plain

まとめると、commitをすることで、Gitにデータが送り込まれる。ここまでが、Gitへの登録作業となる。登録が完了すると、Gitから登録した管理用のIDとしてデータのハッシュ値が生成される。

 

Gitの基本的な考え方~commitまでだけでも、実はあまりピンとくるものが無かった

ので、やっとなんとなーく理解できたつもりであります。では、ばいにゃら。

  

 ・参考資料

Q31: commitとはどんなイメージですか? - ジャパンタイムズ BOOK CLUB

Git - Gitの基本