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 ch08-customizing-git.asc 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.