Git Fetch: Bir Ustalık Sınıfı

Yayınlanan: 2023-02-26
Arka planda küre deseni ve ikili filigran bulunan bir terminal penceresini gösteren Linux dizüstü bilgisayar
fatmawati achmad zaenuri/Shutterstock.com
git fetch komutu, yerel deponuzu bilgilerle güncelleyen ve çalışma dosyalarınızın üzerine yazmadan uzak depodan taahhütler alan bir git pull komutu gibidir.

Git fetch komutu, sıçramadan önce bakmanızı sağlar. Uzak bir havuzda hangi değişikliklerin yapıldığını keşfedebilirsiniz, ancak uzak dosyaları yerel dosyalarınızın üzerine yazmadan.

İçindekiler

git fetch nedir ve ne işe yarar
Git getirme ve çekme
Git fetch ile Yerel ve Uzak Depolarınızı Senkronize Edin
Tüm Alınan Etiketleri Gör
Önce Prova Yapmak
Tek Şube Nasıl Getirilir
Tüm Dalları Getir
Yerel ve Uzak Şubeleri Karşılaştırma
Yerel Şubeyi Uzak Şube ile Senkronize Etme
Yarı Eğitilmiş Köpek Yavrusu

git fetch nedir ve ne işe yarar

Git'teki fetch komutu, uzak bir havuzdaki taahhütleri, dosyaları ve diğer bilgileri yerel deponuza güvenli bir şekilde indirir. Değişiklikleri kabul etmeye zorlanmadan diğer geliştiricilerin yaptığı değişiklikleri görmek istediğinizde getirmeyi kullanın. Yerel dosyalarınıza dokunulmaz. Bu neden önemli?

Bir geliştirme ekibinin parçası olarak çalışırken aklınızı başınıza almalısınız. Uzak veya merkezi havuz, diğer geliştiricilerin oluşturup uzak havuza ittiği değişiklikleri ve yeni dalları içerecektir.

Bilgisayarınızda yerel olarak değiştirdiğiniz dosyaların uzak kopyasını birisi güncellemiş olabilir. Yerel deponuzu güncellemek için rasgele bir git pull gerçekleştirirseniz, muhtemelen istemediğiniz değişiklikler için birleştirme işlemlerini kendiniz halledersiniz.

Bilgileri indirdikten sonra inceleyebilir ve değişikliklerin neler olduğunu görebilirsiniz. Bu, şu anda neyi birleştirmek istediğiniz ve neyi daha sonraya ertelemek istediğiniz konusunda bilinçli bir seçim yapmanızı sağlar.

Git getirme ve çekme

git fetch komutu, git pull komutu gibi davranır, ancak yerel dosyalarınızın üzerine yazan adım yoktur . Yerel deponuz güncellenir ve senkronize edilir, ancak değişiklikler yerel havuzunuzun çalışma durumuna yazılmaz, bu nedenle dosyalarınız dokunulmaz.

Ya da başka bir deyişle, git pull komutu bir git fetch onu hemen takip eden git merge gibidir.

Git fetch ile Yerel ve Uzak Depolarınızı Senkronize Edin

Tüm güncellenmiş meta verileri ve taahhütleri uzak bir depodan yerel deponuza getirmek için, uzak deponun adı veya URL'si ile git fetch komutunu kullanın. Varsayılan olarak, ilk uzak havuz "orijin" olarak adlandırılır.

 git menşei getir

Tek bir uzak havuzla çalışıyorsanız "orijin" kelimesini atlayabilirsiniz.

 git getir 

Varsayılan uzak depoda git fetch komutunu kullanma

Bu, "menşe" deposundan tüm güncellemeleri alır, ancak değişiklikleri çalışan dosyalarla birleştirmez. Bizim için alınmış “new-branch” adında yeni bir şube olduğunu görebiliriz.

fetch komutunu kullandıktan sonra, Branch komutuyla -r (remote) seçeneğini kullanarak uzaktan kumandadaki dalların tam listesini görebilirsiniz.

 git dalı -r 

Varsayılan uzaktan kumandada bulunan dallara bakmak

Bu, uzaktan kumandanın bildiği, fetch sonra yerel deponuzda bulunan tüm şubeleri listeler.

Tüm Alınan Etiketleri Gör

Benzer şekilde, etiketlerin listesini görmek için tag seçeneğini kullanabilirsiniz (dikkat edin, "s" olmadan "etiket").

 git etiketi 

Yerel depodaki etiketleri listelemek için git tag komutunu kullanma

İLİŞKİLİ: Git Uzaktan Kumandaları Nasıl Değiştirilir, Eklenir ve Kaldırılır

Önce Prova Yapmak

Bir git fetch çalışma dosyalarınızdaki değişiklikleri birleştirmese de, yine de yerel deponuzu günceller. fetch komutunun hangi değişikliği gerçekleştireceğini, gerçekten değiştirmeden görmek istiyorsanız, --dry-run seçeneğini kullanın.

 git fetch --dry-run 

--dry-run seçeneğini kullanarak fetch komutunun alacağı değişiklikleri görün

Tek Şube Nasıl Getirilir

Tek bir şube hakkında bilgi almak kolaydır. fetch yalnızca o dal hakkında bilgi sahibi olmanız gerektiğini söylemek için dalın adını komut satırına ekleyin.

Burada, fetch uzak depo "origin"den "mary-feature" dalı almasını söylüyoruz.

 git Origin mary özelliğini getir 

Tek bir uzak dalı almak için git fetch kullanma

Artık uzak şubenin ayrıntıları ve içeriği yerel deponuzda olduğuna göre, yeni bir şube oluşturmak ve uzak şubeyi kontrol etmek için git checkout komutunu kullanabilirsiniz. Bu dalı ilk kez kullanıyorsanız, bu mevcut dosyaların üzerine yazmaz.

 git checkout -b mary-özellik kaynağı/mary-özellik 

Alınan bir uzak şubeyi yeni bir yerel şubeye güvenle kontrol etme

Tüm Dalları Getir

Birden fazla uzaktan kumanda kullanıyorsanız, --all seçeneğini kullanarak tüm şubelerdeki tüm değişiklikleri yerel deponuza geri çekerek zaman kazanabilirsiniz.

 git getir -- tümü

Yerel ve Uzak Şubeleri Karşılaştırma

Uzak şubedeki dosyaların yerel kopyalarınızdan nasıl farklı olduğunu görmek için git fetch kullanın, ardından git log komutunu kullanın.

Yerel ve uzak şubelerin onları ayıran iki nokta “ .. ” olduğuna dikkat edin. --oneline seçeneği, taahhüt tanımlayıcısını ve taahhüt mesajını gösterir.

 git getir
 git log --oneline mary-feature..origin/mary-feature 

Uzak değişiklikleri getirmek için git'i ve değişiklikleri göstermek için git log'u kullanma

Bir dal çok sayıda değişiklik içeriyorsa, tek satırlık görünüm kullanışlıdır. Biraz daha fazla bilgi görmek için --oneline seçeneğini atlayın.

 git log mary-feature..origin/mary-feature 

--oneline seçeneğini atlayarak thatgit'in her işlem için daha fazla ayrıntı göstermesi

Bu bize, taahhüt mesajı ve değişiklik yazarının iletişim ayrıntılarıyla birlikte her bir taahhüdün saatini ve tarihini gösterir.

Yerel Şubeyi Uzak Şube ile Senkronize Etme

Devam etmeye ve uzak şubedeki değişiklikleri yerel çalışma dosyalarınızla birleştirmeye karar verdiyseniz, bu komutları kullanabilirsiniz.

Çalıştığımızdan emin olmak için şubeyi kontrol edeceğiz, şu anki çalışan şubemiz..

 git checkout mary özelliği 

Bir şubeyi kontrol etmek

Şube bizim için kontrol edildi ve uzak versiyonun arkasında olduğu söylendi. Güncellemek için git pull , ardından durumumuzu kontrol etmek için git status kullanabiliriz.

 git çek
 git durumu 

Değişiklikleri rmeote deposundan yerel olana çekme

Yerel dosyalarımızda bazı değişiklikler yaptıysak, şubeyi teslim aldığımızda Git bize bir birleştirme başlatmak için bir git pull gerçekleştirmemiz gerektiğini bildirir.

 git checkout mary özelliği 

Git, yerel ve uzak ağların birbirinden ayrıldığını ve birleştirilmesi gerektiğini bize bildiriyor

Basit bir git pull dosyaları alma ve birleştirme sürecini başlatır veya doğrudan dalıp git merge kendisini kullanabiliriz. Doğru şube ile çalıştığımızdan emin olarak başlayacağız

 git checkout mary özelliği 

Git, yerel ve uzak ağların birbirinden ayrıldığını ve birleştirilmesi gerektiğini bize bildiriyor

git mevcut şubemizi uzak depodaki şubeyle birleştirmesini söyleyeceğiz, çözülmesi gereken altı farklı taahhüt var.

Başarılı bir birleştirme mesajı

Git'e hangi uzak dalı birleştirmek istediğimizi söylememiz gerekiyor.

 git birleştirme kaynağı/mary-özelliği 

uzak değişiklikleri yerel bir dalda birleştirmek için git birleştirme kullanma

Bir taahhüt mesajı sağlamamıza izin veren bir editör açılır. Önerilen mesajı kabul edebilir veya kendimizinkini ekleyebiliriz. Git farklı bir düzenleyici kullanmak üzere yapılandırılmadığı sürece, düzenleyici varsayılan düzenleyicinizdir.

Taahhüt mesajını düzenleme

Devam etmeye hazır olduğunuzda değişikliklerinizi kaydedin. Düzenleyici kapatıldığında birleştirme otomatik olarak devam eder.

Birleştirmemiz başarılı oldu çünkü herhangi bir çatışma olmadı.

Başarılı bir birleştirme mesajı

Aynı kod satırları iki veya daha fazla geliştirici tarafından değiştirildiğinde çakışmalar ortaya çıkar. Bu durumda Git, etkilenen dosyadaki çakışmaları işaretler. Bunları sırayla incelemeniz ve hangi değişikliğin korunacağını seçmeniz gerekir.

Yarı Eğitilmiş Köpek Yavrusu

Tıpkı eğitimdeki bir köpek yavrusu gibi, fetch istediğini alacak, ama onu bırakmayacak. Yavru köpeğin size gösterdiği şeyi gerçekten istiyorsanız, pull gerekecek.

İLİŞKİLİ: Git rebase: Bilmeniz Gereken Her Şey