İlan
Web geliştiricileri olarak, çoğu zaman yerel geliştirme sitelerinde çalışma eğilimindeyiz ve işimiz bittiğinde her şeyi yüklüyoruz. Bu sadece siz ve değişiklikler küçük olduğunda, ancak birden fazla şeyle uğraşırken sorun değil bir şey üzerinde çalışan veya çok sayıda karmaşık bileşeni olan büyük bir projede çalışan kişi, mümkün. İşte o zaman sürüm kontrolü adı verilen bir şeye yöneliyoruz.
Bugün Git adında açık kaynaklı bir sürüm kontrol yazılımından bahsedeceğim. Bu, birden fazla kişinin aynı projede birbirini etkilemeden güvenli bir şekilde çalışmasına izin verir, ancak bundan çok daha fazlasıdır.
Neden Sürüm Kontrol Yazılımı Kullanılmalı?
Her şeyden önce, isim onu vermelidir. Sürüm kontrol yazılımı, zaman içinde kodda yapılan değişiklikleri gösteren bir projenin "sürümlerine" sahip olmanızı ve gerekirse geri izlemenizi ve bu değişiklikleri geri almanızı sağlar. Tek başına bu yetenek - iki versiyonu veya ters değişiklikleri karşılaştırabilme, daha büyük projeler üzerinde çalışırken oldukça paha biçilmez kılar.
Muhtemelen bunu bir noktada kendiniz bile yaptınız, bir projenin kopyalarını farklı noktalarda sakladınız, böylece bir yedeğiniz var. Bir sürüm kontrol sisteminde, sadece değişiklikler kaydedilir - bir sonraki sürüme aynı olması için bir sürüme uygulanabilecek bir yama dosyası. Bir geliştirici ile bu yeterlidir.
Peki ya bir proje üzerinde çalışan birden fazla geliştiriciniz varsa? İşte o zaman merkezi bir sürüm kontrol sunucusu fikri devreye giriyor. Bunlar uzun süredir standarttır ve tüm sürümler merkezi bir sunucuda saklanır ve bireysel geliştiriciler değişiklikleri kontrol eder ve değişiklikleri bu sunucuya geri yükler. Daha önce bir Wikipedia sayfasının düzenleme geçmişine baktıysanız, bunun gerçek dünya senaryosunda nasıl çalıştığı hakkında iyi bir fikriniz olacaktır:
Bunun gibi bir sistemin faydaları, birden çok geliştiricinin değişiklik yapabilmesidir ve her değişiklik daha sonra belirli bir geliştiriciye atfedilebilir. Dezavantajı, her şeyin uzak bir veritabanında depolanması, sunucu çöktüğünde hiçbir değişiklik yapılamayacağı anlamına gelir; ve merkezi veritabanı kaybolursa, her istemci üzerinde çalıştıkları şeyin yalnızca güncel sürümüne sahiptir.
Bu bizi Git'e ve diğer sözde dağıtılmış sürüm kontrol sistemleri. Bu sistemlerde, istemciler yalnızca dosyaların geçerli sürümüne bakmaz ve onlardan çalışırlar - tüm sürüm geçmişini yansıtırlar. Her geliştirici her zaman her şeyin tam bir kopyasına sahiptir. Bir merkezi sunucu hala kullanılmaktadır, ancak en kötüsü olursa, her şey en son sürümlere sahip istemcilerden geri yüklenebilir.
Git özellikle dosyaların “anlık görüntülerini” alarak çalışır; dosyalar belirli bir sürümde değişmeden kalırsa, yalnızca önceki dosyalara bağlanır - bu her şeyi hızlı ve yalın tutar.
Git'in, web sitenizi yönetmek ve geliştirmek için kullanıldığını öğrenmek de ilginizi çekebilir. çekirdek linux çekirdeği - tüm linux dağıtımlarının yapıldığı temel yapı taşı.
Github nedir?
Kendi Git sunucunuzu yerel olarak çalıştırabilseniz de, Github hem uzak bir sunucu, hem de bir geliştiriciler topluluğu ve Git projenizi yönetmek için bir grafik web arayüzüdür. Özel projeler için düşük maliyetli planlarla 5 adede kadar halka açık depoda (yani, herhangi birinin kodunuzu görüntüleyebileceği veya hazırlayabileceği) ücretsiz olarak kullanılabilir. Kendi projelerinizle oynamaya veya bir başkasına çatal atmaya başlayabilmeniz için ücretsiz bir hesap açmanızı şiddetle tavsiye ederim.
Çatal ve Dallanma
Bunlar Git deneyiminin temel kavramlarıdır, bu yüzden farkı açıklayalım.
Linux dağıtımlarıyla uğraşırken muhtemelen “çatal” işini duymuşsunuzdur. Media center uygulaması Plex'i biliyorsanız, aslında benzer açık kaynaklardan bir çatal olduğunu bilirsiniz. Xbox Medya Merkezi Aeon Nox 3.5: XBMC için Güzel Ve Özelleştirilebilir TemaMedya merkezinizi tam olarak istediğiniz şekilde ayarlayın. Aeon Nox 3.5, XBMC için belki de en iyi temanın en yeni sürümüdür ve nadir bir kombinasyon: güzel ... Daha fazla oku . Bu, geçmişte bir noktada, bazı geliştiricilerin XBMC kodunu aldıkları ve onunla kendi yollarına gitmeye karar verdikleri anlamına gelir; Plex oldu.
Proje açık kaynak olduğunda buna kesinlikle izin verilir - kodu alabilir, onunla ne istersen yapabilirsin. Git ile, değişikliklerinizin “ana” projeye geri döndürülecek kadar iyi olduğunu düşünüyorsanız, yazarınıza değişikliklerinizi orijinal haline geri getirmelerini isteyen bir "çekme isteği" yapabilir projesi. Bu, herhangi bir noktada bir proje üzerinde çalışan yüz binlerce geliştiricinizin bulunmasına izin verir. kod erişimi için zorunlu olarak onaylanır - sadece kodu kopyalar, değişiklikler yaparlar ve usta. Elbette, değişikliklerinizi kabul etmeye veya kabul etmemeye karar vermeleri orijinal projenin sahibine bağlıdır.
Dallanma, bir projede dahili olarak yetkili geliştiriciler tarafından yapılan bir şeydir. Belirli sorunları veya özellikleri kolayca ayırmanıza ve ana dosyaları bozmadan bunlar üzerinde çalışmanıza olanak tanır. Şubenizin bu konuyu ele aldığından memnun olduğunuzda, yeniden master ile birleştirirsiniz. Herhangi bir noktada, istediğiniz kadar dal olabilir; birbirlerini etkilemezler. Ayrıca ana öğeye dokunmadan dallar arasındaki değişiklikleri birleştirebilirsiniz.
Aşağıda örnek bir iş akışının harika bir diyagramı verilmiştir: Vincent Driessen:
Bir dahaki sefere, çalışan bir Git örneğinin nasıl ayarlanacağına ve şubelerde kod değişikliklerinin nasıl yapılacağına bakacağız. Sürüm kontrolü büyük bir konudur. Buraya yalnızca en kısa genel özeti verdim, ancak sadece değişiklik yapmaya ve işe yaramazsa bunları geri almaya alışkın bir geliştirici olarak, tüm kavram aklımı uçurdu - umarım sizinkini de yapar.
Git konusunda tecrübeli deneyimli bir geliştirici misiniz? Daha yeni mi başlıyorsunuz ve gitmek istediğinizi mi düşünüyorsunuz? Sesli yorumlarda!
James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.