git init sırasında oluşturulan .git dizininin ayrıntılı açıklaması
.git dizini config, HEAD, hooks, objects, refs gibi çeşitli dosya ve klasörler içerir
config metin dosyası, mevcut deponun git ayarlarını ve yazar ile dosya modu gibi temel ayarları içerir
HEAD dosyası, varsayılan dalı işaret eden deponun mevcut head bilgisini içerir. Varsayılan dalın nasıl adlandırıldığına bağlı olarak master veya main olabilir
hooks dizini, git işlemlerinden önce ve sonra çalıştırılabilen tüm betikleri içerir
objects dizini, depodaki dosyalar ve commit'lerle ilgili verileri içerir
refs dizini, dalları ve etiketleri gösteren referansları veya işaretçileri saklar
- Depoya bir dosya eklendiğinde,
index dosyası güncellenir ve objects dizinine yeni klasörler ile dosyalar eklenir
objects dizinindeki yeni dosya, eklenen dosyanın türünü, boyutunu ve verisini içerir; dosya adı ise içeriğin sha1 değerinden alınır
- Dosya commit edildiğinde, commit mesajını içeren
COMMIT_EDITMSG adlı yeni bir dosya oluşturulur ve objects dizinine yeni nesneler eklenmesi gibi çeşitli değişiklikler meydana gelir
- Git'te dal oluşturmak,
refs/heads dizinine dal adı ile en son commit'in kimliğini içeren yeni bir dosya eklemeyi kapsayan basit bir süreçtir
- Dal checkout işlemi,
.git/HEAD dosyasını checkout edilen dalı gösterecek şekilde güncellemeyi içerir
- Dal birleştirme üç şekilde yapılabilir: fast forward merge, rebase merge, ayrı bir merge commit oluşturma
- Depo push edildiğinde,
objects dizinindeki her şey ve açıkça push edilen refs altındaki tüm dallar ile etiketler başka bir git deposuna gönderilir
1 yorum