Git En İyi Uygulamaları – (g)'den en iyi şekilde nasıl yararlanılır
Yayınlanan: 2019-07-02Pull, Fetch, Commit, Push, Merge, Rebase – bu terimler henüz günlük yaşamlarınıza girmeyi başardı mı? Linus Torvalds, Git'in ilk sürümünü yarattığında, onu "aptal içerik izleyici" olarak tanımladı. Günümüze hızlı ilerleyen bu ücretsiz açık kaynaklı yazılım, artık en popüler sürüm kontrol sistemidir.
Git nedir?
Bazen zamanı geri alabilmeyi, böylece daha iyi bir karar verebilmeyi veya işleri farklı şekilde yapabilmeyi istemez miydin? Eh, teknoloji ve kodlama dünyasında, yapabilirsiniz. Git, üzerinde herhangi bir değişiklik/ekleme yaptığınızda değerli kodunuzun sürümlerini kaydeden açık kaynaklı dağıtılmış bir sürüm kontrol sistemidir. Yani ne zaman geri dönmeniz gerekiyorsa, sadece çalışan sürümü seçin ve işte! Git ayrıca, geliştiriciler kendi yerel kopyaları üzerinde aynı anda çalıştıkları için ekipler içinde kesintisiz çalışmaya olanak tanır. Her ekip üyesi tarafından yapılan her değişiklik izlenir, böylece organize bir akışta şeffaflık korunur. Peki o zaman GitHub nedir? GitHub, sürüm kontrol sisteminizi optimize etmek için birçok özelliğe sahip Git için bir depo barındırma hizmetidir.
Git İş Akışı
Her kuruluşun farklı bir Git iş akışı vardır. En başarılı Git iş akışı, ekibinize üretkenlik için yeterli alan sağlarken çıktılarının etkinliğini en üst düzeye çıkaran iş akışıdır. Ekibinizin büyüklüğüne göre ölçeklenebilir olmalı ve ortaya çıkabilecek çatışmaların sayısını en aza indirmelidir. Merkezi Git iş akışı, Özellik dallandırma iş akışı, çatallama iş akışı, Git akışı iş akışı vb. gibi diğer Git iş akışlarının üzerine inşa edildiği temeldir. Kuruluşunuzun kültürünü geliştirmek ve tamamlamak için bir iş akışı planlanmalıdır. Her Takım için kendi Git İş Akışı.
Git'i neden kullanmalı?
1. Dağıtılmış mimari
Geliştiricileri tek tek dosyalarda "ödeme" yapabilmek ve değişiklik yapabilmek için tek bir merkezi depoya erişmeye zorlayan Merkezi sürüm kontrol sistemlerinden farklı olarak Git, dağıtılmış bir yaklaşım izler. Dağıtılmış mimaride, her geliştiricinin tüm merkezi havuzun kendi yerel kopyaları vardır, bu da onların çevrimdışı çalışmasına, eksiksiz revizyon geçmişine erişmesine ve kolay dallanma ve birleştirmeye olanak tanır.
2. Güçlü performans
T'ye erişim modellerini anlayan akıllı derin bilgi algoritmaları sayesinde Git iş akışıyla dallanma, birleştirme, taahhüt etme vb. işlemleri gerçekten kolay ve hızlıdır.
3. Güvenlidir
Git, sürümler ve dizinler arasındaki ilişkiler de dahil olmak üzere tüm dosya içeriğini, hashtag algoritması olarak bir SHA1 kullanarak kriptografik olarak depolar. Herhangi bir kazara veya kötü niyetli kod değişikliği tamamen izlenebilir.
4. Açık kaynak
Açık kaynak olduğu için Git ücretsizdir, iyi bir topluluk desteğine sahiptir, kalite açısından sürekli olarak incelenir ve öğrenciler için çok sayıda belge ve öğreticiyle desteklenir.
5. Daha hızlı sürümler
Git'in dağıtılmış geliştirmesi ve yeni özelliklerin kolay dallanması ve oluşturulması, geliştiricileri çevik bir iş akışında daha sık değişiklik yapmaya teşvik eder.

Git - Dağıtılmış Mimari
Git için en iyi uygulamalar
Yeni proje? Yeni depo
Üzerinde çalışmaya başlamak istediğiniz her yeni proje için yeni bir repo oluşturmak iyi bir organizasyonel anlam ifade eder. Bittiğinde, GitHub'a itin.
Yeni özellik? şube dışarı
Artık yeni bir proje oluşturduğunuza göre, bazı yeni Git özellikleri oluşturmaya ne dersiniz? Git Dallanma, deponuz içinde organize bir iş akışı oluşturmanıza ve yönetmenize olanak tanır. Ekip üyelerine aynı anda ancak izole bir şekilde çalışmalarına izin veren çeşitli Git şubeleri atanabilir. Git şubenize her zaman anlamlı bir anlam verin, böylece diğerleri tam olarak ne üzerinde çalıştığınızı bilsin.
Güncel kalarak güne başlayın
Oluşturduğunuz/size atadığınız özellikler üzerinde çalışmaya başlamadan önce daima projenizin (ana) en son, en güncel sürümünü "yeniden temel alın" veya alın. Eski dosyalarda değişiklik yapmak istemezsiniz.

Periyodik kontrol noktalarına sahip olun
Taahhütlerinizi büyük bir değişiklik için saklamayın. Kodun sizin ve ekip üyeleriniz için daha kolay anlaşılması için sık sık küçük değişiklikler "taahhüt edin". Değişiklikler küçük ve sık olduğunda geri dönmek ve takip etmek de daha kolaydır.
işini sakla
Çoğu zaman, bir Git dalında çalıştığınız durumlarla karşılaşabilirsiniz, ancak aniden başka bir dalda çalışmanız gerektiğini hatırladınız, ancak bu yarım kalmış değişiklikleri “taahhüt etmek” istemiyorsunuz. Veya sadece temiz çalışan bir kopya isteyebilirsiniz. kurtarmaya "git stash". Saklama, tamamlanmamış değişikliklerinizi istediğiniz zaman geri dönebileceğiniz bir yığına kaydetmenizi sağlar!
Ezmek onları taahhüt eder
Geçmişinizde daha az taahhüt olması, nerede yanlış yaptığınızı izlemeyi ve izlemeyi kolaylaştırır. Temiz bir taahhüt geçmişi tutmak istiyorsanız, bu sizin için. Çekme isteği birleştirildiğinde tüm taahhütlerinizi ezin ve birleştirin.
Mesajları taahhüt et
Taahhüt mesajınızda her zaman açık ve anlaşılır bilgiler sağlayın. Değişikliklerinizin kısa bir özetini yazarak başlayın, boş bir satır bırakın ve ardından değişikliğin ayrıntılı bir açıklamasıyla devam edin. Taahhüt geçmişinizin böyle görünmesini istemezsiniz :/

https://xkcd.com/1296/
geçmişi değiştirme
Depodaki değişikliklerinizi yaptıktan sonra geri dönüp geçmişi değiştirmeyin. Git bunu yapmanıza ve kamu tarihini yeniden yazmanıza izin verse de, bunu yapmak asla iyi bir uygulama değildir. Hem sizin hem de ekibiniz için.
Git yaması uygula
Depoya yazma erişiminizin olmadığı ancak yine de bir hatayı düzeltmek istediğiniz zamanlarda Git yaması uygulayın. Her zaman ana depoyu klonlamayı ve ardından yeni özellik için bir dal oluşturmayı unutmayın. .patch dosyanız hazır olduğunda, her zaman önizleyin ve hataları kontrol etmek için kuru bir çalışma yapın. Git, yamayı bir kez uygulayın (git Apply -R path/file.patch). Test etmeyi ve kontrol etmeyi UNUTMAYIN
Çekme isteklerini çok uzun süre dışarıda bırakmayın
Açık bir "çekme" isteği, er ya da geç çatışmalara neden olabilir. Onları 2 günden fazla gözetimsiz bırakmayın. Her zaman kodu gözden geçirin ve dağıtmak uygunsa, çekme isteğini birleştirin. Bu, yalnızca nakliye sürecini hızlandırmakla kalmayacak, aynı zamanda kod çakışmalarını da önleyecektir.
Proje yönetimi araçlarıyla daha iyi organizasyon
Redmine gibi proje yönetimi araçlarını kullanıyorsanız, birden fazla ekip üyesini ve görevlerini daha iyi yönetebilmek için Git ile birlikte kullanmak iyi bir uygulamadır. Git şubelerinizi adı olarak Redmine göreviyle oluşturmak, daha iyi şeffaflık ve düzenlemeye izin verdiği için en iyi Git uygulamalarından biridir.

Redmine'de oluşturulan görev

Görev kimliği ve adıyla bir şube oluşturma
GitLab CI/CD'si
Bunun gibi bir Sürekli Entegrasyon/Sürekli Dağıtım aracı kullanmak, hataları ve hataları test etmenize ve kontrol etmenize olanak tanır ve kod standartlarıyla uyumluluğu sağlar. Bu işler, kod hazırlama sunucusuna gönderildikten sonra gerçekleştirilir.

GitLab CI/CD iş listesi
