Git
Chapters ▾ 2nd Edition

10.1 Dahili Git Ögeleri - Tesisat ve Döşeme (Plumbing ve Porcelain)

Bu bölüme çok daha öndeki bir bölümden atlamış olabilir veya kitabın geri kalanını sırayla okuyarak bu noktaya gelmiş olabilirsiniz. Her iki durumda da, bu bölümde Git’in iç işleyişini ve uygulanmasını ele alacağız. Şunu keşfettik ki bu bilginin anlaşılması, Git’in ne kadar kullanışlı ve güçlü olduğunu kavramak için temel önem taşımaktadır, ancak diğerleri bize bu bilgilerin yeni başlayanlar için kafa karıştırıcı ve gereksiz ölçüde karmaşık olabileceğini savundular. Bu nedenle, bu tartışmayı kitaptaki son bölüm yaptık. Böylece bu bilgiyi öğrenme sürecinizin erken veya geç aşamalarında okuyabilirsiniz. Ne zaman okuyacağınıza dair kararı siz vereceksiniz.

Şimdi burada olduğunuza göre, başlayabiliriz. İlk olarak, henüz net değilse, Git temel olarak bir içerik adreslenebilir dosya sistemidir ve üzerine yazılmış bir VCS kullanıcı arayüzüne sahiptir. Bunun ne anlama geldiğini birazdan daha detaylıca öğreneceksiniz.

Git’in ilk zamanlarında (çoğunlukla v1.5 öncesi), kullanıcı arayüzü bu dosya sistemini vurguladığından; cilalanmış bir VCS yerine, daha karmaşık bir yapıdaydı. Kullanıcı arayüzü diğer sistemler kadar temiz ve kullanımı kolay hale gelene kadar, Son birkaç yılda, arayüz sürekli olarak geliştirildi. Ancak, kompleks ve öğrenmesi zor olan erken dönem Git kullanıcı arayüzüne dair bir sterotip hala varlığını sürdürmektedir.

İçerik adreslenebilir dosya sistem katmanı inanılmaz derecede harika olduğu için, bu bölümde önce bunu ele alacağız; daha sonra, zamanla karşılaşabileceğiniz taşıma mekanizmalarını ve repo bakım görevlerini öğreneceksiniz.

Tesisat ve Döşeme (Plumbing ve Porcelain)

Bu kitap, checkout, branch, remote gibi yaklaşık 30 alt komutla Git’in nasıl kullanılacağını anlatır. Ancak, Git başlangıçta tamamen kullanıcı dostu bir sürüm kontrol sistemi olmaktan ziyade bir araç seti olarak tasarlandığı için, düşük seviyeli işler yapan ve UNIX tarzında birbirine zincirlenebilen veya betiklerden çağrılabilen bir dizi alt komut içerir.

Bu komutlar genellikle Git’in "tesisat" (plumbing) komutları olarak adlandırılırken, daha kullanıcı dostu komutlar "döşeme" (porcelain) komutları olarak adlandırılır.

Şu ana kadar fark etmiş olabileceğiniz gibi, bu kitabın ilk dokuz bölümü neredeyse tamamen "döşeme" komutlarıyla ilgilidir. Ancak bu bölümde, Git’in iç işleyişine erişim sağladığı ve Git’in birşeyleri nasıl ve neden yaptığını göstermek için, çoğunlukla daha düşük seviyeli "tesisat" komutlarla ilgileneceksiniz. Bu komutların çoğu, komut satırında manuel olarak kullanılmaktan ziyade, yeni araçlar ve özel betikler için yapı taşları olarak kullanılmak üzere tasarlanmıştır.

Yeni veya varolan bir dizinde git init komutunu çalıştırdığınızda, Git .git adında neredeyse herşeyin saklandığı ve manipüle edildiği bir dizin oluşturur. Reponuzu yedeklemek veya kopyalamak isterseniz, bu tek dizini başka bir yere kopyalamak neredeyse ihtiyacınız olan her şeyi size sağlar. Bu bölüm temel olarak, bu dizinde görebileceğiniz şeylerle ilgilidir.

Yeni başlatılmış bir .git dizini genellikle şöyle görünür:

$ ls -F1
config
description
HEAD
hooks/
info/
objects/
refs/

Kullandığınız Git sürümüne bağlı olarak bazı ek içerikler görebilirsiniz, ancak yeni bir git init reposu böyledir (varsayılan olarak gördüğünüz şey budur). description dosyası yalnızca GitWeb programı tarafından kullanılır, bu yüzden endişelenmeyin. config dosyası, projenize özgü yapılandırma seçeneklerinizi içerir ve info dizini, bir .gitignore dosyasında izlemek istemediğiniz dışlanan desenler için genel bir dışlama dosyasını . hooks dizini, istemci veya sunucu tarafı kancalarınızı içerir ve bunlar Git Kancaları (Hooks) bölümünde detaylı olarak ele alınmaktadır.

Bu, dört önemli giriş bırakır: HEAD (henüz oluşturulmamıştır), index dosyaları, objects ve refs dizinleri. Bunlar Git’in temel parçalarıdır. objects dizini veritabanınızın tüm içeriğini depolar, refs dizini bu verideki katkı nesnesi işaretçilerini depolar (dallar, etiketler, uzaklar ve daha fazlası), HEAD dosyası şu anda bulunduğunuz dalı gösterir ve index dosyası ise Git’in izlem alanı bilgilerinizi depoladığı yerdir. Şimdi Git’in nasıl çalıştığını görmek için bu bölümlerin her birine detaylı olarak bakacağız.

scroll-to-top