.git ディレクトリの中には何があるのか?
(blog.meain.io)git init時に生成される.gitディレクトリの詳細な説明.gitディレクトリにはconfig、HEAD、hooks、objects、refsなど、さまざまなファイルやフォルダが含まれるconfigテキストファイルには、現在のリポジトリの git 設定、作成者、ファイルモードのような基本設定が含まれるHEADファイルには、デフォルトブランチを指すリポジトリの現在のヘッドが含まれる。デフォルトブランチを何にしたかによってmasterまたはmainなどになるhooksディレクトリには、git の動作の前後に実行できるすべてのスクリプトが含まれるobjectsディレクトリには、リポジトリのファイルとコミットに関するデータが含まれるrefsディレクトリには、ブランチとタグを指す参照またはポインタが保存される
- ファイルがリポジトリに追加されると、
indexファイルが更新され、objectsディレクトリに新しいフォルダとファイルが追加される objectsディレクトリの新しいファイルには、追加されたファイルの種類、サイズ、データが含まれ、ファイル名は内容のsha1から取得される- ファイルがコミットされると、コミットメッセージを含む
COMMIT_EDITMSGという新しいファイルが作成され、objectsディレクトリに新しいオブジェクトが追加されるなど、複数の変更が発生する - git でのブランチ作成は、
refs/headsディレクトリにブランチ名と最新コミットの ID を持つ新しいファイルを追加するというシンプルなプロセス - ブランチのチェックアウトには、チェックアウトされたブランチを指すように
.git/HEADファイルを更新することが含まれる - ブランチのマージは 3 つの方法で実行できる: fast forward merge、rebase merge、別個の merge commit の作成
- リポジトリがプッシュされると、
objectsディレクトリ内のすべてのものと、明示的にプッシュされたrefs配下のすべてのブランチおよびタグが別の git リポジトリに送信される
1件のコメント