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件のコメント