İçindekiler
değişiklikler Git Diğer yönetim ve sürüm kontrol sistemlerindekiyle aynı değildirler, çünkü yalnızca gerçekten değişenleri depolayarak, kontrol için oluşturulan dosyaların boyutunu azaltır ve aynı zamanda daha fazla çeviklik sağlar.Tüm bunları kontrol eden yön, dizin Yapılan tüm değişikliklerin kimde, ne zaman ve ne zaman yapıldığını bilmek kimin sorumluluğundadır, bu yüzden farklı yönleri de bünyemize kattıktan sonra dizin nın-nin dal arama yapıldı işlemek.
taahhüt nedir?İçinde Git Bir değişiklik eklemek için bir değişiklik yapmamız gerektiğini biliyoruz. işlemek depo dizinine eklendikten sonra aynıdır. Ancak, ne bir işlemek Kesinlikle? Bu soru her zaman kendimize sorulmaz çünkü Git bu oldukça açık, ancak bir işlemek bu şekilde Git depo indeksinin mevcut durumunu kaydeder ve onu karşılık gelen nesnede saklar, bu şekilde her biri işlemek öncekinden türetilir ve bu sayede değişikliğe uğramayan yapı yeniden kullanılabilir.
Bunu bu kadar hızlı yapan kaynak yönetimi, farklı alanlarda yapılan karşılaştırmalardan kaynaklanmaktadır. SHA1 Bu nedenle, dizin içindeki öğeler aynı karmaya sahipse, aynı oldukları için değişikliklerini incelemeye devam etmezler ve bu nedenle yalnızca gerçekten değişen dosyalar alınır.
hangi şekilde taahhüt eder Kayıtlı tüm değişikliklerin kaynağını elde etme kesinliğini veren hiyerarşik yapılar oluşturmamıza izin verir, bu nedenle en iyi uygulamaları izlersek Git Eşsiz tanımlayıcılar sayesinde asla kaybolmayacağız, ayrıca herhangi bir işlevsellik bir sorun yarattıysa, tam olarak dahil edildiği noktada bulunabileceğinden emin olabiliriz.
nasıl yorumladık taahhüt eder bir karma var SHA1 tanımlanabildiklerinde, bu karma aynı zamanda onları benzersiz ve tekrar edilemez kılıyor, yani işlemek ve başka bir depoda aynı karma bulunur, böylece aynı olduğunu bilebiliriz işlemek.
Bundan dolayı işlemek ayrıca kabul edilir atomik, yani, birçok dizinin veya dosyanın durumunu bağımsız olarak depolayan tek bir birim olarak, bununla başvurabiliriz işlemek depomuzdaki bir birim olarak ve böylece her birini bir öncekiyle ilişkili olmasına rağmen benzersiz olan bir unsur olarak ele alabilmek.
Her ne kadar karma SHA1 için benzersiz bir tanımlayıcı olarak hizmet eder. işlemek, onun yapısı 40 alfanümerik karakter başka bir geliştiriciyle iletişim kurmak istediğimizde bir sorunu temsil edebilir ve bunu açıklamak işlemek Konuşuyoruz.
akraba isimleriBu sorunu çözmek için kurabiliriz göreceli isimler ve hatırlaması daha kolay taahhüt ederBunlar hash'in yerini almaz, daha çok onları daha insani bir şekilde tanımlamamıza izin veren bir tür etiket olarak çalışırlar.
Son hakkında konuşmak için işlemek arasında dal basitçe başvurabiliriz KAFA, çünkü bu her zaman en son ve en yeniye atıfta bulunacaktır. işlemekAncak, her zaman buna ihtiyaç duymayacağımız için, ilk karakterlerini kullanmamız yeterlidir. doğramak, her zaman benzersiz olmayacak olsa da, daha fazla karakter ekleyerek ilgili benzersizliği elde edeceğiz.
İkincisini elde etmek için kullanmamız gereken komutu görelim:
git log -1 --pretty = oneline tanımlayıcı taahhüt
Şimdi aşağıdaki resimde nasıl tanımladığımızı göreceğiz. işlemek test havuzumuzda, bunun için başlangıçta hangisinin olduğunu bulacağız. SHA1 arasında KAFA ve sonra onu ilk karakterleriyle arayacağız, bakalım:
Önceki örnekte, bir araç keşfettik. Git bu çok yararlı olabilir ve günlük komutu, bu çok güçlü çünkü farklı olanı bulmamıza izin veriyor. işlemek hızlı ve kesin bir şekilde, ancak ilk etapta ezberlenmesi zor olabilecek birçok parametre ve konfigürasyona sahip, ancak onu kullanmak için hepsini öğrenmemize gerek yok, alışınca yavaş yavaş gidebiliriz. kullanmak.
Taahhüt geçmişini görmek istiyorsak, aşağıdakileri yapmanız yeterlidir:
git günlüğü şube adı
Bununla elde edeceğimiz ayrıntılı tarih bilgisi bizim dal ve onların taahhüt ederSahip olduğumuz testlerin deposunda konsolumuzda nasıl göründüğüne bakalım:
sonra nasıl olduğunu fark ederiz taahhüt eder en yakın zamandan en eskiye doğru organize edildiğinden, bu durum, savaşın uğradığı değişikliklerin tarihsel çizgisini biraz görmemizi sağlar. dal tarihsel günlüğü görüntülemek için seçildi.
Konsol üzerinde çalışmak çok gerekli olmasına rağmen bazen biraz ağır olduğu için, Git tarihini gözden geçirmemizi sağlayan bir araç sunuyor. taahhüt eder grafiksel olarak ve gitk alt komutu değildir Git örneğin daha önce gördüğümüz log gibi, ancak bu bağımsız bir komuttur ve şube ve geçmişi hakkında daha fazla ayrıntıya erişmemizi sağlar.
Kullanmak için aşağıdaki komutu çalıştırmamız yeterlidir:
gitk adıŞube
Bakalım konsolda yürütmesi nasıl görünüyor:
Hiçbir şey olmamış gibi görünse de, kısa süre sonra istenen grafiği içeren bir pencere alacağız. dal aşağıdaki ekran görüntüsünde görebileceğimiz gibi belirtilmiştir:
BÜYÜT
Görselleştirmedeki iyileştirmeye ek olarak, çok daha fazla ayrıntıya sahip olduğumuzu fark edebiliriz.Referanslar Y Simrefler ait olmak Referanslar Y sembolik referanslar sırasıyla, ilki bir tanımlayıcıya karşılık gelir SHA1 Depomuzun nesne çerçevesi içindeki bir nesnenin, ikincisi ise dolaylı olarak bir nesneye karşılık gelir, ismine rağmen aynı zamanda bir referanstır.
Bu referanslar yapısını bilmek çok önemlidir, çünkü bizim rehberimizin organizasyonunu anlamamıza izin verecektir. taahhüt eder Y dallar içinde Git, dizinde saklanan .git / başvuru.
Sembolik bir referans oluşturmaAçıkça oluşturmak istiyorsak sembolik referans sadece komutu kullan git sembolik-refgibi isimler kullanmak mümkün olsa da KAFA bu referanslar için tavsiye edilmez, çünkü sonunda bizi depomuza zarar verebilecek bir karışıklığa götürebilirler.
Son olarak, test depomuza uyguladığımızda bu komutun yürütülmesinin nasıl göründüğünü görelim:
işin bir başka ilginç yönü taahhüt eder, birlikte çalışabilir miyiz akraba isimleriBu, taahhüt aralıklarını bulmayı çok basit hale getirir, örneğin belirli bir dönemin incelemeleri arasında ne olduğunu bulmak istiyorsak bunu yapabiliriz.
Bunu başarmak için sadece dalın adını ve sembolünü kullanmamız gerekiyor. ^ ve revizyon numarası. Örneğin usta ^ burada yapılan sondan bir önceki değişikliğe atıfta bulunuyoruz dal usta.
Depo geçmişiBu şekilde, depomuzun tüm geçmişi boyunca ilerleyebileceğiz, bu da bize şuna göre erişim imkanı verir. taahhüt eder yapıyı takip edersek, mevcut olana sahip olmamızı mümkün kılan usta 2 bizi ikinci babasına götürecek işlemekyani paralel olarak hayat veren, onunla da ~ mevcut taahhüdümüzün babasının babasına, yani büyükbabaya, bir şekilde şecere koymak için erişebiliriz.
Bir örnek olabilir usta 2 ~ 3 Depomuzdaki tarihsel değişikliklere atıfta bulunmak için, göreceli bir taahhüdün adını almak istiyorsak, aşağıdaki komutu kullanmamız yeterlidir:
git rev-parse GöreliAdı
Bu, SHA1 arasında işlemek hangi geldik. Aşağıdaki resimde master ve with ile mevcut taahhüdün adını nasıl elde edebileceğimizi görelim. usta ~ aynı kişinin ilk ebeveyninin adı işlemek nereden başlıyoruz:
O zaman nasıl iki tane elde edebildiğimizi fark ettik. SHA1 depomuzda farklı ve geçerli, yalnızca akraba isimleri.
Bununla bu öğreticiyi bitiriyoruz, ne olduğuna dair yeni kavramları tanıttık. taahhüt eder içinde GitBu bize depolarımızın yapılarını daha iyi anlama imkanı verir, bununla organizasyon daha mantıklı görünecek ve böylece kodumuzdaki değişiklikleri yönetirken çok daha etkili olabiliriz. bu şekilde Git farklılıkları yönetmek onu çok özel kılıyor ve bu nedenle günümüz teknolojisinin önde gelen sürüm yöneticilerinden biri haline geldi.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.