Geliştirme ekibiniz Git’i kullanıyorsa, sonunda başka birinin çalışmasını uzak bir havuzdan şube olarak kontrol etmeniz gerekecektir. Git’teki çoğu şube eylemi gibi, uzak bir şubeye geçmek de aslında oldukça basittir.
Git, Şubeler ve Uzaktan Kumandalar
Git felsefesi sık sık dallanmak. Dallar, ana kod tabanını değiştirmeden geliştirmenin gerçekleşmesine izin verir. Test edilmiş yeni kodunuzun hazır olduğundan emin olduğunuzda, yeni şubenizi başka bir şubeyle birleştirirsiniz. Genellikle bu ana veya ana daldır, ancak herhangi iki dalı birleştirebilirsiniz.
Bu esneklik ve Git’in dalları işlemesi ve birleştirmeleri hafif ve hızlı yolu nedeniyle, dallanma dönüşüme uğradı. Eski sürüm kontrol sistemlerinde dallanma çok önemliydi. Dallanma ve birleştirme yavaştı ve hataya açıktı. Git, geliştiricilere birçok farklı iş akışını desteklemek için kullanılan kolay ve hızlı dallanma olanağı sağladı.
Git’i kullanan bir geliştirme ekibinin parçası olarak çalışıyorsanız veya gönüllü olarak çalışıyorsanız, her yazılım mühendisinin bilgisayarından uzakta, “merkezi” bir Git deposuna sahip olursunuz. Bu, uzak depo veya yalnızca “uzak” olarak bilinir. Bir itme gerçekleştirdiğinizde, yerel deponuzdaki taahhütlerin ve değişikliklerin gönderildiği yer burasıdır.
Tabii ki, diğer geliştiricilerin de yaptığı şey bu. Bu, işbirliği yapmayı kolaylaştırır. Başka bir geliştiricinin çalışmasına erişmeniz gerekirse, kodlarını uzak depodaki bir şubeden almanız yeterlidir. Çalışmanıza erişmeleri gerekirse, yerel şubelerinizden birini izleyen depodaki bir şubeden kodunuzu alacaklardır.
Git’te, bir geliştirme projesinin birden çok uzaktan kumandası olabilir. Ancak, bir yerel şube yalnızca tek bir uzak şubeyi izleyebilir. Bu nedenle, uygun uzaktan kumandayla çalıştığınız sürece, birden çok uzaktan kumandalı bir uzak şubeyi kontrol etmek, tek bir uzaktan kumandayı kullanmakla aynıdır.
Yerel Şubelerinizi Bulma
İsim çakışmalarından kaçınmalısınız. Kontrol edeceğiniz uzak şubeyle aynı ada sahip bir yerel şubeniz varsa, iki seçeneğiniz vardır. Yerel şubenizi yeniden adlandırabilir ve uzak şubeyi kontrol edebilirsiniz. Bu şekilde, uzak şubeyi izleyen yerel şubeniz, uzak şube ile aynı ada sahip olur. Veya uzak şubeyi teslim alabilir ve Git’e yeni bir adla yerel bir takip şubesi oluşturmasını söyleyebilirsiniz.
Yerel deponuzdaki dalların adlarını öğrenmek için,
git branch emretmek.
git branch
Bu yerel deponun bir ana şubesi ve diğer üç şubesi vardır. Yıldız işareti, geçerli dalın hangisi olduğunu gösterir. Şubeden şubeye taşıma, çalışmak istediğiniz şubeyi kontrol etmeyi gerektirir.
git checkout new-feature
git status
İlk komut dalı bizim için değiştirir, böylece “yeni özellik” mevcut daldır. bu
git status komutu bizim için bunu doğrular.
Şubeler arasında gidip gelebilir, yeni değişiklikler yapabilir, güncellemeleri uzaktan kumandadan çekebilir ve yerel güncellemeleri uzaktan kumandaya gönderebiliriz.
İLİŞKİLİ: Ayrı Git Dalları Nasıl Güncellenir ve Korunur?
Bir Uzak Şubeyi Kontrol Etme
Uzak depoda bizim makinemizde olmayan bir şube var. Mary adlı bir geliştirici, yeni bir özellik oluşturdu. Yazılımın o sürümünü yerel olarak oluşturabilmek için o uzak şubeye geçmek istiyoruz.
Eğer bir
fetchGit meta verileri uzak depodan geri çekecektir.
git fetch
Çünkü bu ilk
fetch Mary şubesini uzak depoya ittiğinden beri yaptık, Bize “origin/mary-feature” adında yeni bir dal olduğu söylendi. Bir projeye eklenen ilk uzak havuz için varsayılan ad “orijin”dir.
Bu mesajı görsek de görmesek de Git’ten her zaman uzak depodaki dalları listelemesini isteyebiliriz.
bu
-r (uzak) seçeneği, Git’e uzak depodaki şubeler hakkında rapor vermesini söyler.
git branch -r
Burada dikkat edilmesi gereken nokta, Git’in yerel uzaktan kumandanın meta verilerinin kopyası. Bu yüzden kullandık
git fetch meta verilerin yerel kopyasının güncel olduğundan emin olmak için komut.
İstediğimiz şubeyi tespit ettikten sonra devam edip kontrol edebiliriz. biz kullanıyoruz
git checkout komutu ile
-b (şube) seçeneği, ardından yerel şube için kullanacağımız isim ve ardından uzak şubenin adı.
git checkout -b mary-feature origin/mary-feature
Uzak şubeyi kontrol ettiğimizi ve uzak şubedeki değişiklikleri takip edecek yerel bir şube oluşturduğumuzu görebiliriz.
git branch
Yeni yerel şubemiz artık mevcut çalışan şubemizdir.
Ad Çakışmalarını Yönetme
Uzak şubeyle aynı ada sahip bir yerel şubeniz varsa, uzak şubeyi teslim almadan önce yerel şubenizi yeniden adlandırabilir veya uzak şubeyi teslim alıp farklı bir yerel şube adı belirtebilirsiniz.
Uzak şubeyi farklı isimli bir yerel şubeye teslim etmek için, daha önce kullandığımız aynı komutu kullanabilir ve yeni bir yerel şube adı seçebiliriz.
git checkout -b mary-test origin/mary-feature
Bu, o şubeye yapılan yerel taahhütleri izleyecek olan “mary-test” adlı yerel bir şube oluşturur. İtmeler uzak “origin/mary-feature” şubesine gidecektir.
Yerel ad çakışmalarını halletmenin muhtemelen en iyi yolu budur. Yerel ve uzak şubenin adını gerçekten aynı tutmak istiyorsanız, uzaktan kumandayı kontrol etmeden önce yerel şubenizi yeniden adlandırmanız gerekir. Bir dalı yeniden adlandırmak Git’te önemsizdir.
git branch -m mary-feature old-mary-branch
Artık uzak “origin/mary-feature” dalını kontrol edebilirsiniz.
Birden Çok Uzak Depoyu Yönetme
Yapılandırılmış birden çok uzak deponuz varsa, uzak şubeyi teslim alırken uygun depoyla çalıştığınıza dikkat etmeniz gerekir.
Uzak depolarınızı listelemek için şunu kullanın:
remote komutu ile
-v (görünüm) seçeneği.
git remote -v
Kullanılabilir tüm şubeleri görmek için, tüm uzaktan kumandalarımızdan meta verileri almamız ve ardından uzak şubeleri listelememiz gerekir.
git fetch --all
git branch --all
İstediğimiz şubenin “orijin” kumandasında olduğunu görebiliriz. Kontrol etme komutu, daha önce kullandığımız formatta. “Origin” uzak adını ve “mary-feature” şube adını belirtmemiz gerekiyor.
git checkout -b mary-feature origin/mary-feature
İLİŞKİLİ: Git Uzaktan Kumandaları Nasıl Değiştirilir, Eklenir ve Kaldırılır
Ödeme Yapmadan Önce
Ödeme yapmadan önce birkaç şeyi aklınızda bulundurun ve iyi olacaksınız.
İsim çakışmalarından kaçındığınızdan emin olun. Uzak şubeyle aynı ada sahip bir yerel şubeniz varsa, yerel şubeyi yeniden adlandırıp adlandırmayacağınıza veya uzak şubeyi izlemek için farklı bir ada sahip bir şube oluşturacağınıza karar verin.
Birden fazla uzak depo kullanıyorsanız, doğru uzaktan kumandayı kullandığınızdan emin olun.
İLİŞKİLİ: Git rebase: Bilmeniz Gereken Her Şey