Git
Git, bir yazılımda yapılan her değişikliği kimin neden yaptığıyla birlikte kaydeden ve böylece herhangi bir değişikliği geri almanızı sağlayan sistemdir.
Şu adla da bilinir sürüm kontrolü kaynak kod yönetimi commit geçmişi
Tanım
Git, bir yazılımda yapılan her değişikliğin kaydını, kimin ne zaman ve neden yaptığıyla birlikte tutar. Kaydedilen her değişikliğe commit denir ve hiçbir şey atılmadığı için bunlardan herhangi biri geri alınabilir. Fikrin tamamı budur, aynı zamanda birkaç kişinin aynı ürün üzerinde aynı anda, birbirinin işini silmeden çalışabilmesinin de nedenidir.
Bu geçmiş var olduğu için kötü bir yayın felaket olmaktan çıkar. Dün gecenin yedeğini geri yükleyip bugünün siparişlerini kaybetmek yerine ekip kodu son sağlam commit'e döndürür ve bu genelde bir dakikadan kısa sürer. GitHub ile GitLab ise Git'in üzerine kurulmuş sitelerdir, yani ortak kopyayı tutar ve çevresindeki tartışmayı eklerler. Biri bir değişiklik önerir, bir başkası da müşteriye ulaşmadan önce onu okuyup yorum yazar. Bu yüzden bir müşteri Linkysoft'a bir fiyat kuralını kimin ne zaman değiştirdiğini sorduğunda cevap birinin hafızasından değil, bu kayıttan çıkar.
İnsanları en çok şaşırtan şey, Git'in aslında unutmamasıdır. Bir parola ya da ödeme anahtarı geçmişe bir kez kaydedildiyse, ertesi gün satırı silmek onu ortadan kaldırmaz. Eski sürüm kayıtta kalır ve projenin bir kopyasına sahip olan herkes onu okuyabilir. Bu nedenle tek dürüst çözüm, parolanın kendisini değiştirip sonra geçmişi temizlemektir. Bir güvenlik incelemesinde ilk baktığımız şeylerden biri budur ve kimsenin isteyeceğinden daha sık karşımıza çıkar.
Bilinmesi gereken iki şey daha var, ilki Git'in bir yedek olmadığıdır. Kodun geçmişini tutar ama müşterilerinizin siparişlerini ya da dosyalarını tutmaz, dolayısıyla onların başka bir yerde kendi kopyası olmalıdır. İkincisi ise geçmişin değerinin, insanların her değişikliğin yanına yazdığı notlarda saklı olmasıdır. Altı ay sonra “düzeltildi” diyen bir not kimseye bir şey anlatmazken, “iki para birimli siparişlerde fatura toplamının aşağı yuvarlanması durduruldu” notu bir öğleden sonrayı kurtarır.
Bir de erken sorulması gereken bir soru var, herkes iyi geçinirken: kodu tutan hesap kimin adına? Şirketler bunu en kötü anda öğrenir, çünkü bir geliştirici ayrılır ve geçmiş de onunla birlikte gider. Bu yüzden Linkysoft'un yürüttüğü her proje ilk günden itibaren, müşterinin sahibi olduğu bir hesapta Git'te durur; yarım devraldığımız işler de buna dâhildir. Tek bir geçmişin hem bir web uygulamasını hem de aynı sistemin içine kurulan mobil uygulamayı kapsaması da böyle olur. Fiyat kuralındaki tek bir değişiklik ikisine birden ulaşır ve hangi gün geldiğini gösterebiliriz.
Git hakkında sorular
Git ile GitHub aynı şey mi?
Git sildiğimiz bir dosyayı geri getirebilir mi?
Git sistemimin yedeği midir?
Geliştirici ayrılırsa kodumuza ne olur?
Biri kodun içine parola kaydetti. Silmek yeterli mi?
Bunun projenize nasıl uyduğundan hâlâ emin değil misiniz?
Ne inşa ettiğinizi bize anlatın, size sade bir dille yanıt verelim.