Git, projelerin nasıl paylaşılması gerektiğine ilişkin bir sürüm kontrol süreci tanımlar. Git projelerinizi barındırmanıza izin veren birçok web sitesi mevcuttur. GitHub en popüler seçenektir, Bitbucket başka bir popüler alternatiftir, her ikisi de sınırsız genel veya özel depo oluşturabilen ücretsiz hesaplara izin verir. GitLab, üçüncü taraf barındırmaya güvenmeden özel geliştirmeye izin veren, kendi kendine barındırılan bir alternatif sunar.
Git deposunu ilk olarak indirme işlemine klonlama denir. Klonlama, o sırada depoyla ilgili tüm bilgileri içerir, ancak depoyu zaman içinde güncel tutmak için yeni sürümleri aşağı çekmeniz gerekir. Bunu yapmak için, deponun yerel versiyonunun bulunduğu dizinde bir terminal penceresi açın ve “git pull” komutunu yazın.
Bu komutun çalışması, yalnızca havuzun güncellenmiş bir sürümünü indirmek istiyorsanız özellikle basittir; yerel sürüm, uzak sürümle eşleşecek şekilde güncellenecektir. Ancak, yerel sürümünüzde değişiklik yaptıysanız sorunlar olabileceğini görebilirsiniz.
“Git pull” komutu aslında “git fetch” ve “git merge FETCH HEAD” olmak üzere iki ayrı komutu çalıştırır. "Git fetch" alt komutu, özellikle çevrimiçi depodan en yeni sürümü indirir ve geçici olarak depolar. “Git merge FETCH HEAD” alt komutu daha sonra yerel değişikliklerinizi indirilen sürümle birleştirir ve daha yeni taahhütler tercih edilir.
İpucu: Bir "git taahhüt", bir değişikliğin sunulmasıdır, aynı veya farklı şeyleri yapan birden fazla yerel ve uzak taahhüt olması mümkündür. Yerel taahhütler, değişiklikler aktarılana kadar uzak sürüm tarafından görülmez. Her taahhüt, tam olarak hangi değişikliklerin yapıldığını ayrıntılarıyla belirtir ve bir zaman damgası içerir.
Yerel ve uzak sürümler arasındaki çakışmalar
İdeal olarak, bir birleştirme senaryosunda hiçbir çakışma olmayacak ve birleştirme işlemi otomatik olarak tamamlanacaktır. Birkaç değişiklik yapıldıysa veya yerel değişiklikleriniz herhangi bir uzaktan değişikliği engellemiyorsa, birleştirmeler özellikle kolay olabilir. Bununla birlikte, kodun aynı bölümünde çelişkili karmaşık değişiklikler varsa, Git bir birleştirme hatası verecektir.
Bu noktada “git merge –abort” komutu ile birleştirmeyi iptal edebilir veya çakışmaları manuel olarak çözmeyi deneyebilirsiniz. "Git mergetool" ve "git diff" komutları, yardımcı olması gereken farklılıkların grafiksel bir örneğini sağlar. birleştirmeye izin vermek için hangi değişikliklerin manuel olarak uygulanması gerektiğini görmeyi mümkün olduğunca kolaylaştırmak için tamamlayınız. Tüm çakışmaları çözdükten sonra, birleştirmeyi tamamlamak için “git merge –continue” komutunu yazın.