Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Git geçmişi Team Foundation Sürüm Denetimi, Perforce veya Subversion gibi merkezi sürüm denetim sistemlerinden (CVCS) temelde farklı bir şekilde temsil eder. Merkezi sistemler, depodaki her dosya için ayrı bir geçmiş depolar. Git, geçmişi deponun tamamının anlık görüntülerinin grafiği olarak depolar. Git'te commit olarak adlandırılan bu anlık görüntülerin birden çok ebeveyni de olabilir ve düz çizgi yerine graf gibi görünen bir geçmiş oluşturabilir. Tarihteki bu fark inanılmaz derecede önemlidir ve CVCS'yi bilen kullanıcıların Git'i kafa karıştırıcı bulmalarının ana nedenidir.
Commit geçmişiyle ilgili temel bilgiler
Basit bir geçmiş örneğiyle başlayın: üç doğrusal işlemeye sahip bir depo.
İşleme A, B işlemesinin üst öğesi, B işlemesi ise C işlemesinin üst öğesidir. Bu geçmiş, CVCS'ye çok benzer. C commit'ine işaret eden ok bir daldır. Dallar belirli işlemelere yönelik işaretçilerdir. Bu nedenle Git'te dallanma çok basit ve kolaydır.
CvCS ile karşılaştırıldığında Git'teki önemli bir fark, geliştiricinin deponun kendi tam kopyasına sahip olmasıdır. Uzak depodan en son işlemeleri alarak yerel depolarını uzak depoyla eşitlenmiş durumda tutmaları gerekir. Bunu yapmak için aşağıdaki komutu kullanarak ana dalı çekerler:
git pull origin main
Bu, uzak depodaki ana daldan yapılan ve varsayılan olarak Git adları origin olan tüm değişiklikleri birleştirir. Bu çekme işlemi yeni bir işleme getirdi ve yerel depodaki ana dal bu işlemeye taşınır.
Dal geçmişini anlama
Şimdi kodda bir değişiklik yapma zamanı. Paralel olarak farklı özellikler üzerinde çalışırken birden çok etkin dal olması yaygın bir durumdır. Bu, yeni dalların ağır olduğu ve nadiren oluşturulduğu CVCS'nin tam tersidir. İlk adım, aşağıdaki komutunu kullanarak yeni bir dala geçmektir:
git checkout -b cool-new-feature
Bu, iki komutu birleştiren bir kısayoldur:
-
git branch cool-new-featuredalı oluşturmak için -
git checkout cool-new-featureşubede çalışmaya başlamak için
İki dal artık aynı işlemeye işaret eder. E ve F olmak üzere iki yeni commit işleminde cool-new-feature dalında birkaç değişiklik olduğunu varsayalım.
Bu daldaki değişikliklere, cool-new-feature dalına işlendiği için dal tarafından erişilebilir.
Artık özellik tamamlandığına göre, ana dala birleştirilmelidir. Bunu yapmak için aşağıdaki komutu kullanın:
git merge cool-new-feature main
Birleştirme olduğunda geçmişin grafik yapısı görünür hale gelir. Git, dal başka bir dalla birleştirildiğinde yeni bir işleme oluşturur. Bu bir birleştirme işlemesidir. Çakışma olmadığından bu birleştirme işlemesinde herhangi bir değişiklik yoktur. Çakışmalar varsa, birleştirme işlemesi bunları çözmek için gereken değişiklikleri içerir.
Gerçek dünyada tarih
Burada, bir ekipte etkin geliştirmede koda daha yakından benzeyen bir Git geçmişi örneği verilmiştir.
Kendi dallarındaki işlemeleri yaklaşık aynı zamanda main dalına birleştiren üç kişi var.
Sonraki Adımlar
GitHub ve Azure Repos'ta Git geçmişiyle çalışma veya Git günlük geçmişini basitleştirme hakkında daha fazla bilgi edinin.