Git'in sunduğu en temel hizmetlerden biri proje geçmişidir. Git, bir depoda yapılan tüm değişiklikleri takip ettiğinden, çok güçlü günlüğe kaydetme özellikleri sunabilir. Bir projenin geçmişini birçok farklı şekilde sorgulayabilir ve tek bir esnek komut kullanarak çeşitli verileri çıkarabilir ve görüntüleyebilirsiniz.
git günlüğü komut çok büyüktür, herhangi bir normal Git komutunun en büyüğüdür. Kılavuzu 2500 satırdan fazladır. Neyse ki, git günlüğü en yararlı davranışının çoğunu yalnızca birkaç anahtar seçenekten sağlar.
Varsayılan Davranışla Temel Günlük Kaydı
Varsayılan olarak, git günlüğü ters kronolojik bir taahhüt listesi gösterir. Her taahhüt, hash, yazar, tarih ve taahhüt mesajını içerir:
Komut, sonuçlarda kolayca gezinebilmeniz için tam çıktıyı göstermek için bir çağrı cihazı (örneğin daha az, daha fazla) kullanır. Git'i seçtiğiniz bir programı kullanacak şekilde yapılandırabilirsiniz. en çağrı cihazı.
İşte bazı git log çıktıları git kaynak kodunun deposu kendisi:
taahhüt 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> ana, kaynak/sonraki,
orijin/master, orijin/HEAD)
Yazar: Junio C Hamano
Tarih: 14 Haz Pzt 13:23:28 2021 +0900
ikinci parti
İmzalayan: Junio C Hamano
Sonuç, taahhüt karmasıyla başlar (670...) ardından şu anda bu taahhüdü işaret eden dalların bir listesi (BAŞ -> usta, vb.)
Sonraki satır, adını ve e-posta adresini vererek bu taahhüdün yazarını tanımlar.
Taahhüdün tam tarihi ve saati bir sonraki satırda takip edilir.
Son olarak, taahhüt mesajının tam içeriği görünür. git log'un sunduğu diğer her şeyin çoğunu komut satırı seçenekleriyle kontrol edebilirsiniz. İki ana seçenek türü vardır:
- Git'in her bir taahhüdü nasıl görüntülediğini tanımlayan biçimlendirme.
- Hangi taahhütleri tanımlayan filtreleme git günlüğü içerir.
Komut satırı seçeneklerine ek olarak git log, dosyaları, taahhütleri, dalları veya diğer başvuru türlerini belirten argümanları kabul eder. Bunlar daha fazla filtreleme uygular.
Git Günlük Çıktısını Biçimlendirme
En basit ayarlamalardan biri, --Tek çizgi çok kısa bir çıktı üreten seçenek:
git günlüğü --oneline
Günlükteki her satır artık yalnızca kısaltılmış bir taahhüt karması ve konusunu içerir. taahhüt mesajı. Bu, projeye yapılan son taahhütlere genel bir bakış elde etmenin mükemmel bir yoludur:
Ne yazık ki, başka bir bağlam olmadığı için bu bilgi her zaman o kadar yararlı olmuyor. Size proje hakkında belirsiz bir fikir verebilir, ancak yazarlar ve dosyalar hakkında tarihler ve diğer yararlı bilgilerden yoksundur.
Şube Grafiği Görüntüleme
--grafik seçeneği, dallar arasındaki ilişkileri görselleştirmenizi sağlar. Çok basit ama karmaşık bir geçmişi çözmeye yardımcı olabilir.
git log --oneline --graph
İlişkili: Git'te Yeni Şube Nasıl Oluşturulur
Özelleştirilmiş Pretty Çıktı
kullanarak ayrıntılı olarak belirterek daha karmaşık biçimlendirme elde edebilirsiniz. --güzel seçenek. Sözdizimi çok basitten çok daha karmaşığa doğru gider, yani tüm ayrıntılar için bir kılavuza bakın.
git log --pretty=kısa
temelde aynıdır git günlüğü tarih veya tam mesaj olmadan:
git log --pretty=oneline
eşdeğerdir git günlüğü --oneline.
git log --pretty=dolu
Çok fazla ayrıntı içerir. Teoride farklı insanlar olabilen yazar ve taahhüt edeni bile ayırır:
İle biçim: değişken olarak, çeşitli verilerle değiştirilen yer tutucular da dahil olmak üzere, istediğiniz içeriği içeren bir dize sağlayabilirsiniz. İşte bazı örnek yer tutucular:
- %H karma işlemek
- %h kısaltılmış taahhüt hash
- %ad yazar tarihi
- %ar yazar tarihi, akraba
- %s mesaj konusunu işle
- %b mesaj gövdesini taahhüt et
- %p kısaltılmış ana hash'ler
Çıktıya sabit karakterler ekleyebilir ve renklendirebilirsiniz. Bu örnek ayrıca tarih biçiminde bir varyasyonu gösterir:
git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short
Parantezlerin tarihi çevrelediğini unutmayın. Hangi biçimlendirmeyi seçerseniz seçin, çıktının bir ardışık düzende veya diğer metin işleme biçimleri için yararlı olmasını istiyorsanız, çıktının her bir bölümünü nasıl ayıracağınızı düşünmelisiniz.
Günlükte Farkları Gösterme
Bir havuzun geçmişine bakarken önemli bir ayrıntı, farklılıkların kendisidir. Ne de olsa kodda gerçekte nelerin değiştiğini temsil ediyorlar! Yeni başlayanlar için, aşağıdakileri kullanarak her bir taahhüdün yanında değişikliklerin bir özetini alabilirsiniz: --kısa durum:
git log --shortstat
Bu, şöyle bir satır ekler:
1 dosya değişti, 48 ekleme(+), 2 silme(-)
Her taahhüdün altına. Örneğin GitHub'daki sayfalar boyunca bu tür özetleri sık sık görürsünüz ve bu, belirli bir taahhüdün kapsamını hızlı bir şekilde değerlendirmenin yararlı bir yoludur. Daha ayrıntılı bilgi için, aşağıdakileri kullanarak tam yama çıktısını (farklar) ekleyebilirsiniz. -p bayrak:
git günlüğü -p
Git Günlük Çıkışını Filtreleme
Uyguladığınız biçimlendirme ne olursa olsun, geçerli daldaki tüm taahhütlerin tam günlüğünü görmeye devam edeceksiniz. Git onları sayfalara ayırsa da, yine de çok fazla çıktı olabilir. Aşağıdaki seçenekler, günlüğün hangi taahhütleri içerdiğini özelleştirmenize olanak tanır.
Tutarla Kısıtlama
En son birkaç işlemi göstermek için sonuçları kırpmak istiyorsanız, -[numara] sözdizimi:
git günlüğü-2
Tarihe Göre Kısıtlama
Taahhüt kümesini belirli bir tarih aralığıyla sınırlamak için şunu kullanın: --dan beri (--sonra) ve --a kadar (--önce) seçenekleri. Bunların her biri ISO 8601 formatında bir tarih alır. ikisinden birini kullanabilirsin --dan beri veya --a kadar bir aralık belirtmek için kendi başlarına veya her ikisi birlikte. Seçenekler --sonra ve --önce eş anlamlıdır.
git log --since="2021-01-01" --until="2021-05-01"
Dosyaya Göre Kısıtlama
Git günlüğü, deponuzdaki her dosya yerine belirli bir dosyaya odaklanabilir. Bu, belirli bir dosyanın zaman içinde nasıl değiştiğini bulmanıza yardımcı olmak için harikadır. Dosya adını git komutunuzun sonuna eklemeniz yeterlidir:
git günlük dosya adı
Yalnızca etkilenen taahhütleri göreceksiniz dosya adı.
Şubeler Arasındaki Farklar
Bir dalın günlüğünü görüntülerken bazı benzersiz gereksinimleriniz olabilir. Örneğin, tüm geçmişi görmek yerine, o belirli dalda nelerin değiştiğini görmek isteyebilirsiniz. Git günlüğü aracılığıyla yardımcı olabilir ref1..ref2 sözdizimi. Kullanabileceğiniz biraz farklı üç yaklaşım vardır:
- Ana olan, ancak dalda olmayan taahhütleri görüntüleyin:
git log --oneline Origin/branch..origin/main
- Dalda olan ancak ana olmayan taahhütleri görüntüleyin:
git log --oneline kökeni/ana..Menşei/şube
- Yalnızca dalda veya ana dalda bulunan taahhütleri görüntüleyin:
git log --oneline kaynak/dal...köken/ana
Tıpkı şubeler arasındaki geçmişi görüntüleyebileceğiniz gibi ref1..ref2 sözdizimi, aynı şekilde etiketler arasındaki geçmişi de görüntüleyebilirsiniz. Sonuçta, hem etiketler hem de dallar referans türleridir.
git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0
Daha büyük bir proje için sürüm notları hazırlıyorsanız, git kısa günlüğü ilk bağlantı noktanız olmalıdır. Yanlarında taahhüt konuları olan yazarların bir listesini üretir. Geçmişi git log'a benzer şekilde sınırlamak için ona bir referans aralığı iletebilirsiniz:
git kısa günlüğü v2.32.0-rc3..v2.32.0
git göster komutu olduğundan daha çok yönlüdür git günlüğü. Taahhüt geçmişinin ötesinde etiketler ve diğer git nesneleri türleri ile çalışabilir. ile birçok seçeneği paylaşır. git günlüğü, ancak buna yalnızca alt düzey ayrıntılara inmeniz gerekiyorsa gerçekten ihtiyacınız olacak.
Git Log ile Geçmişi Gözden Geçirin
Git log karmaşık bir komuttur, ancak en temel seçeneklerinden çokça faydalanabilirsiniz. Bir havuzun geçmişine göz atmak, değişikliklerin ne sıklıkla meydana geldiğini ve kaç kişinin bunları yaptığını anlamanın mükemmel bir yoludur. Bir projenin geçmişini iyi bir şekilde anladıktan sonra, buna kendiniz katkıda bulunmak için harika bir konumda olacaksınız.
Kodlama kaslarınızı çalıştırmak ve açık kaynak projelerine yardımcı olmak ister misiniz? GitHub'a nasıl katkıda bulunacağınız aşağıda açıklanmıştır.
Sonrakini Oku
- Programlama
- GitHub
- Kodlama İpuçları
Bobby, yirmi yılı aşkın bir süredir yazılım geliştiricisi olarak çalışan bir teknoloji tutkunu. Oyun konusunda tutkulu, Switch Player Magazine'de İnceleme Editörü olarak çalışıyor ve çevrimiçi yayıncılık ve web geliştirmenin tüm yönleriyle ilgileniyor.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Bir adım daha…!
Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.