Output Diary

プログラミング × 読書 のアウトプットを発信しています

GitとGitHub(2)

 

 

イカとイカ焼き

 

GitとGitHub(1)のつづきになります。

 

 

Gitの特徴

 

・Gitはデータをスナップショットとして保存している

・コミットをたどることで以前の状態に戻せる

 

といった特徴を持っています。

 

f:id:kina_kq:20210215055157j:plain



ワークツリーが自分の作業場です。

ワークが作業場、ツリーがディレクトリなどを指しています。

 

 

ローカルの3つのエリア

 

リポジトリ

ステージ

ワークツリー

 

 

ワークツリーはファイルを変更する作業場で、

ステージはコミットする変更を準備します。

リポジトリではスナップショットを記録しています。

 

 

 

ワークツリー→ステージ→リポジトリの流れです。

 

 

 

ワークツリーからステージに情報を持っていくこと git add(追加)

ステージからリポジトリに情報を持っていくことを git commit(コミット)

 

といいます。

 

 

 

Gitオブジェクト

git add や git commit した時、
「圧縮ファイル」
「ツリーファイル」
「コミットファイル」が作成されます。
 
 
Gitではこれらのファイルを「Gitオブジェクト」と呼んでいます。
Gitオブジェクトは「.git/objects」ディレクトリの下に保存されます。

 

 

これら3つのオブジェクトについて説明していきます。

 

 

 

f:id:kina_kq:20210213132227p:plain

 

 

 

圧縮ファイル

 

圧縮ファイルはファイルの中身そのものを圧縮したものです。
正確には「blob(ブロブ)オブジェクト」と言います。
blobというのは「カタマリ」という意味です。
ファイルの中身を圧縮しただけのカタマリということになります。
 
 

リーファイル

 
ファイル名とファイルの中身の組み合わせ(ファイル構造)を保存するためにあるのがツリーファイルです。コミットをするとツリーファイルが作成されます。ツリーファイルは「treeオブジェクト」と言います。
 
ディレクトリの一つの階層ごとに一つのツリーファイルになっていて、ツリーファイルには圧縮ファイルだけでなくツリーファイルも保存されています。
 
 

コミットファイル

 
情報を保存するためにあるのがコミットファイルです。コミットファイルは正確には「commitオブジェクト」と言います。
 
 
 
 
Gitについて説明していきましたー
そレではまた明日ー!!!
 

f:id:kina_kq:20210215060648p:plain