Git'e Giriş

Yayınlanan: 2022-06-30

Yepyeni bir web sitesi kuruyor, bir tema veya eklenti geliştiriyor veya gelişmiş sürekli entegrasyon ve dağıtım stratejileri kuruyor olsanız da kodla çalışıyor olacaksınız.

İster WordPress, WooCommerce, Drupal, Magento, NextJS, ister elle kodlanmış HTML kullanıyor olun, her web sitesinin altında yürütülen kod vardır. Her sayfanın dünyaya içerik oluşturmasını ve görüntülemesini sağlamak için gereken dosya grupları vardır.

Hızlı bir şekilde keşfedeceğiniz şey, zaman içindeki kod değişikliklerini izlemek için bir yola ihtiyacınız olduğudur. Herhangi bir dosyanın en güncel sürümünde hangi değişikliklerin olduğunu ve her değişikliği kimin yaptığını bilmeniz gerekir.

Git burada devreye giriyor. Git hakkında bilgi edinmek, uzak Git depolarıyla çalışmak ve daha fazlası için okumaya devam edin.

Git'i Anlamak

Git, geliştiricilerin ve dosyalarla çalışan diğer herkesin, değişikliklerinin sürümlerini kolayca oluşturup saklamasına, bu değişikliklerin geçmişini görmesine ve bu değişiklikleri cihazlar ve sistemler arasında paylaşmasına olanak tanıyan bir sürüm kontrol sistemidir. bir şeyler ters gittiğinde bu değişiklikleri geri almak için.

Kısa bir tarihçe

2005 yılında, geliştiricilerden oluşan bir ekip, ücretsiz ve açık kaynaklı işletim sistemi olan Linux adlı bir proje oluşturuyordu. Yüzlerce katkıda bulunanlar arasında değişiklikleri kolayca iletmenin bir yoluna ihtiyaçları vardı. Başlangıçta, güncellenmiş kodu içeren ayrı yamaları geçiyorlardı, ancak bu, özellikle herhangi bir belirli değişiklik setinin “doğru” ve en son sürümünün ne olduğunu belirlerken, birçok cephede sorunlu oldu.

Bu sorunlardan dolayı hüsrana uğrayan Linux projesi, Linus Torvald'ı, geliştiriciler arasında tüm kod tabanını paylaşmak ve değişikliklerinin "anlık görüntülerini" almak için bir proje için oldukça yeni bir fikir uygulamaya yönlendirdi. kod, dünyanın herhangi bir yerinde. Tüm proje değişiklikleri tek bir geçmiş olarak görülebileceğinden, bu hemen iletişime yardımcı oldu.

Bu anlık görüntüleri yakalamaya yönelik bu yöntem, hızla kendi başına bir yaşam süren ve o zamandan beri Linux projesinden bağımsız olarak geliştirilen Git'tir.

Değişikliklerin Grafiği

Kavramsal olarak Git'i, her bir düğümün belirli bir anda tüm projenin bir anlık görüntüsü olduğu bir düğüm grafiği olarak düşünebilirsiniz. Git-scm.com'daki Git kitabı, bir anlık görüntünün yapısını ana hatlarıyla belirtir.

Git, verileri zaman içinde projenin anlık görüntüleri olarak depolar

Bu anlık görüntü zinciri, en son sürüm önde veya değişiklik geçmişinizin en üstünde olacak şekilde zaman içinde bir grafik oluşturur. Git'te her anlık görüntüye "taahhüt" denir.

En son değişikliği grafiğin en üstüne koyarsanız, Git projesinin nasıl göründüğüne hızlı bir bakış. Not — bu örnek, grafiği görselleştirmek için GitKraken Git GUI'yi kullanıyor.

Örnek git grafiği

Git Grafiğinin Oluşturulması

Git, Git geçmişiniz olarak da bilinen bu değişiklik grafiğini, değişiklikleri taahhüt etme süreci aracılığıyla oluşturur. Bununla birlikte, değişiklik yapmadan önce, o anlık görüntüye ne eklemek istediğinizi Git'e özellikle söylemeniz veya Git'te doğru şekilde belirtildiği gibi taahhütte bulunmanız gerekir.

Yerel olarak çalışırken, projenizde kaydettiğiniz tüm değişiklikler "Çalışma Dizininizde" bulunur. Git bu değişiklikleri görebilir, ancak hangi değişiklikleri yapmak istediğinizi henüz bilmiyor. Bu belirli dosyaları Git'in "hazırlama alanına" eklemek için "git add" adlı bir komut kullanarak hangi değişiklikleri yapmak istediğinizi Git'e açıkça söylemeniz gerekecektir.

Proje anlık görüntülerinin grafiğine eklemek istediğiniz dosya değişikliklerine sahip olduğunuzda, o anlık görüntüyü kalıcı olarak grafik üzerinde oluşturmak için “Git commit” komutunu kullanabilirsiniz.

Git ekleme ve tamamlama adımları

Zamanda Geri Dönmek

Git'in ve tüm proje geçmişinize sahip olmanın avantajlarından biri, istediğiniz zaman geri dönüp tüm değişiklikleri geri alabilmenizdir.

Yaptığınız son taahhüt bir şeyi bozarsa veya yaptığınız şeyle ilgili fikrinizi değiştirirseniz, Git taahhüdünü geri almak için bir "Git revert" yapabilirsiniz. Bu, grafik üzerinde az önce yaptığınız değişiklikleri geri alan yeni bir taahhüt oluşturur.

Zamanda geriye gitmek ve hiç taahhütte bulunmamış gibi göstermek istiyorsanız, bunu yapmak için “Git reset” kullanabilirsiniz.

Git'te Dallanmanın ve Birleştirmenin Gücü

Git'in bize sağladığı en güçlü özelliklerden biri paralel alternatif gerçeklikler yaratma yeteneğidir. Hayır, gerçekten.

Zaman içinde taahhütlerin bir grafiğini oluşturduğunuz için, geçmişinizin herhangi bir noktasından şube adı verilen paralel taahhüt satırları oluşturmayı seçebilirsiniz. Yeni oluşturulan Git şubesi ana tarihten bağımsızdır, yani istediğiniz değişikliği yapmakta özgürsünüz ve bu diğer çalışmalarınızı etkilemeyecektir. Ana zaman çizelgesi de bir daldır ve en yaygın olarak "ana" veya "ana" dal olarak adlandırılır. Ana şube dışındaki yeni şubeler ve şubelere genellikle "özellik şubeleri" denir.

Özellik dalınızda değişiklikleri yaptıktan sonra, Git birleştirme gerçekleştirerek tüm değişiklikleri ana şubeye uygulayabilirsiniz.

Bu şekilde çalışmanın büyük bir avantajı var. Bir özellik dalı, kod değişikliklerini yalıtır, bu nedenle hatalar yaparsanız, ana dalın güvenli olduğundan emin olabilirsiniz. Şubelerde çalışmak, devam eden geliştirme çalışmalarını kesintiye uğratmadan bir güncelleme veya güvenlik düzeltmesi uygulamanız gerektiğinde ana şubeyi de serbest bırakır.

Git birleştirme, ana daldaki değişiklikleri bir özellik dalına çekmenize de olanak tanır. Bu size, ana dalda yapılan güncellemelerin, siz onları "ana" ile birleştirmeye çalışmadan önce önerilen değişikliklerinizle çalışmaya devam edeceğinden emin olmanızı sağlar.

Bir ekiple çalışıyorsanız Git dallanma stratejisi, ekibinizin değişiklikleri üretime geçmeden önce kapsamlı bir şekilde test etmesini sağlayabilir ve süreci yönetmek için basit bir yol sağlayabilir.

Git'te Uzak Depolarla Çalışmak

Git'in ana hedeflerinden biri, dünyanın her yerinden insanlarla kod paylaşmayı kolaylaştırmaktır. Git'te yerleşik olan, uzak bir depo kavramıdır.

Git deposu, çalışmanızı sakladığınız ve Git'in zaman içinde izlediği proje klasörünün tamamıdır. Her depo Git klon komutu kullanılarak klonlanabilir ve sınırsız sayıda paylaşılabilir, bu da Git'i çok ölçeklenebilir hale getirir.

Git'i çok ölçeklenebilir kılan bir başka özellik de, bir belgeyi değiştirirseniz, o belgenin tamamen yeni bir kopyasını saklamanıza gerek olmamasıdır. Değişiklikler, "deltalar" olarak adlandırılan küçük bilgi paketleri olarak depolanır ve Git'in depolaması veya paylaşması gereken şey, yalnızca bir dosyanın ayrı ayrı değiştirilmiş satırları ve değişiklikle ilgili biraz veridir. Deltalar çok hafiftir, genellikle sadece birkaç bayt boyutundadır. Örneğin, 100 KB'lık bir belgede tek bir satırı değiştirirseniz, delta yalnızca 20 bayt kadar olacaktır.

Bir havuzun tüm kopyalarında her şeyi aynı hizada ve tutarlı tutmak için, hangi bilgisayarda bulunan hangi kopyanın projenin "gerçek" kopyası olduğunu belirlemeniz ve ardından taahhütlerinizin bu kopyaya ulaştığından emin olmanız yeterlidir.

Bu, diğer şekilde de çalışır. Başkalarıyla işbirliği yaparken, projenin yerel kopyanızın güncel olduğundan emin olmak için değişikliklerini deponun yerel kopyanıza çekebilirsiniz.

Uzak depolarla çalışmanın git modeli

Uzak depolarda işbirliğini son derece basit ve yönetilebilir hale getiren birkaç şirket var. GitHub, GitLab ve BitBucket gibi platformlar, çevrimiçi Git deposu barındırma ve işbirliği araçları sunar. Milyonlarca geliştirici tarafından yönetilen çevrimiçi olarak milyonlarca Git deposu vardır ve Git, kaç kişi işbirliği yapıyor olursa olsun, her bir gerçeği tek tek izler.

Git'te Neler Saklanmaz?

Git ile muhtemelen yapmamanız gereken şeylerden bahsedelim. Git, kod paylaşma ve zaman içindeki değişiklikleri izleme konusunda harika olsa da, model için pek uygun olmayan bazı işler vardır. Neyse ki Git bize ".gitignore" dosyası adı verilen şeyleri görmezden gelmesini söylemenin kullanışlı bir yolunu sunuyor.

Bir ".gitiginore" dosyası varsa Git, bu öğeleri izlemesi gerekip gerekmediğini görmek için dosyayı kontrol eder. Bir “.gitiginore” içinde tek tek dosya adlarını, tüm dizinleri veya tüm dosya türlerini listeleyebilirsiniz. Örneğin, tüm .png ve .jpg dosyalarını ve tüm “wp-content/uploads” klasörünüzü hariç tutmak istiyorsanız, “.gitignore” dosyalarınıza şunu yazmanız yeterlidir:

 *.png *.jpg wp-content/uploads

Neden Medya Dosyalarını Git'ten Dışlamalı?

Git, bir projenin anlık görüntülerini saklar ve yalnızca "deltaları" iletir. Ancak söz konusu dosya bir görüntü, video veya herhangi bir ikili dosya gibi bir veri "blobu"ysa, dosyadaki her değişiklik tamamen yeni bir veri bloğu oluşturacaktır. Git'in daha sonra hem eski blobun hem de yeni blobun durumunu hatırlaması gerekir, bu da depoya çok fazla gereksiz boyut ekler. Bu zamanla birikir ve Git'in hafif avantajlarını kaybettiğinizde depolar kısa sürede hantal hale gelir.

İster inanın ister inanmayın, WordPress çekirdeğindeki değişiklikleri izlemek istemeyebilirsiniz. Bunun için birkaç sebep var.

İlk olarak, herhangi bir CMS'de eski bir söz vardır: "Çekirdeği hacklemeyin!" WordPress'in özünde, izlenmesi gereken, değiştirdiğiniz hiçbir şey olmamalıdır. Herhangi bir güncellemenin WordPress'in kendisinden gelmesi gerekecek ve daha eski bir sürüm istiyorsanız, yüklediğinizde bu kolayca belirtilebilir. Tüm bir WordPress kurulumunu Git'te kesinlikle saklayabilirsiniz, ancak belirli durumlarda bunu yapmanın pek bir değeri yoktur. Gerçekten yalnızca, özel eklentileriniz ve alt temalarınız gibi, manipüle ettiğiniz koddaki değişiklikleri izlemek istiyorsunuz. Bu konuyla ilgili tavsiyeleri için barındırma sağlayıcınıza danışmak gerçekten iyi bir fikirdir.

İkincisi, WordPress'e geri katkıda bulunmayı planlıyorsanız, bunun aslında SVN adı verilen daha eski bir sürüm kontrol sistemi aracılığıyla yapıldığını göreceksiniz. Bu model merkezi bir sunucu altyapısı gerektirir ve Git'e kıyasla çok daha az popülerdir, ancak yine de WordPress Git'ten daha eskidir. SVN yama sistemiyle çalışmak biraz farklıdır ve bu konuda daha fazla bilgi için belgelerine başvurmalısınız.

Çözüm

Umarım artık Git'in ne olduğunu ve web sitenizin koduyla çalışmak için nasıl kullanılabileceğini daha iyi anlamışsınızdır. Git, bilgisayar kodu olmasa bile zamanla değiştireceğiniz tüm dosyalar için kullanılabilir.

Git, hedef kullanıcılarına IBM'den ödünç alınan eski bir terim olan "bilgi işçileri" olarak atıfta bulunur. Git, masaüstünüzdeki notlardan yemek tariflerine ve tüm kitaplara kadar her şey için işinizi daha iyi organize etmenin bir yolunu sunar ve kendinize her değişikliği neden ve ne zaman yaptığınıza dair sağlam bir iz bırakır.

Zamanda geriye gitme ve değişikliklerinizi görme gücü, dallanma ve birleştirme ile sınırsız paralel evrenlerde çalışma yeteneği ile birleştiğinde Git'i kod üzerinde çalışan herkes için vazgeçilmez bir araç haline getirir. Git ayrıca ekiplerin kod projelerinde işbirliği yapmasının birincil yoludur.

Git'in kullanımı ücretsizdir ve GitKraken gibi çoğu Git GUI'sinin ücretsiz sürümleri vardır. Çalışmanızı izlemek için Git'i kullanmamanız için hiçbir neden yok, bu yüzden ona "Git"!

alakalı kaynaklar

- XAMPP ile WordPress Yerel Geliştirme

- Gelişmiş Git Kullanımı ve İş Akışları

- Git Kancaları

- Geliştirici Sitesi Nedir?

- WordPress için Önbelleğe Alma