Git Fetch ve Git Pull Arasındaki Farklar Nelerdir?

git fetch ve git pull arasindaki farklar nelerdir

Veri veya bilgi indirme görevi günlük hayatınızda yaptığınız önemli bir adımdır çünkü sisteminizin yerel deposunda baktığınız uzak veriler sadece bir anlık görüntüdür. Bu veriler, uzaktaki taze verileri doğrudan fetch ve full ile en son indirdiğiniz zamanki kadar günceldir. Bir uzaktaki dalları ve komutları incelerken bu gerçekleri her zaman hatırlamak önemlidir.

Bunu okuyan okuyucular ayrıca okurlar:

Git Fetch ve Git Pull Arasındaki Farklar Nelerdir?

Git Fetch ve Git Pull arasındaki temel fark, git fetch’in kaynaktan en yeni meta veri bilgilerini geri yüklemek için yerel git’inizi gösteren komut olmasıdır. Herhangi bir dosya aktarmaz. Daha çok değişikliklerin mevcut olup olmadığını bulmak için verileri incelemek gibidir, oysa git pull tüm değişiklikleri deponuza çekmekle birlikte aynı şeyi yapar

Git fetch, uzaktaki bir deponun dosyalarını, anlık görüntülerini ve referanslarını yerel deponuza indiren bir komuttur. Bu komut, yerel deponuzun mevcut çalışma durumunu güncellemeden uzaktaki verileri indirir, çalışmanızı olduğu gibi bırakır ve getirilen içerik gitcheckout komutu kullanılarak açıkça kontrol edilir.

Öte yandan, git pulls komutu uzaktaki bir depodan verileri getirip indirirken yerel depoyu getirilen verilerle eşleşecek şekilde günceller. Git pulls komutu, git fetch ve git merge komutlarının bir kombinasyonudur, bu nedenle başlangıçta git fetch komutunun işlevini yerine getirir ve daha sonra commit’i birleştirir ve yeni bir merge commit oluşturur.

Git Fetch ve Git Pull Arasındaki Karşılaştırma Tablosu

Karşılaştırma Parametreleri  Git Fetch  Git Pull
Tanım Kodu uzak depodan yerel depoya çeken bir komut. Uzak depoda yakın zamanda yapılan değişiklikleri indiren ve bunları yerel bir depoda birleştiren bir komut.
Komuta git fetch git pull
Fonksiyon Uzak bir depoda yapılan değişiklikleri çakışma yaratmadan geri yükler. Uzak depoda yapılan değişiklikleri kaydeder ve bunları birleştirir, bu da çakışmalar yaratır.
Geliştiriciler Geliştiriciler, diğer geliştiriciler tarafından itilen taahhütleri bilirler. Geliştiriciler güncelleme için yerel kod deposunu değiştirebilir.
Çatışmalar Birleştirme yapılmadığı için herhangi bir çakışma meydana gelmez. Birleşme çatışmaları genellikle tek bir kod üzerinde aynı anda iki kişi çalıştığında ortaya çıkar.
git fetch ve git pull arasindaki farklar nelerdir
git fetch ve git pull arasindaki farklar nelerdir

Git Fetch Nedir?

Git fetch, başka bir sunucunun projesindeki her türlü içeriği veya veriyi yerel sisteminize indirmek için kullanılan bir komuttur. Sistemde zaten mevcut olan yerel kodların üzerine yazılmaz. Bu komut genellikle yerel bir depoyu uzak bir depo ile güncellemek için git reset komutu ile birlikte kullanılır. Git sürümünün kontrol sistemi ile çalışırken uzak bir depodan veri almak çok önemli bir adımdır.

Getirme işlemi, kullanıcının başka bir depodaki içeriği ve diğer verileri yerel sistemine geri yüklemesine ve ayrıca uzak depoda zaman içinde yapılan değişikliklerin kaydını tutmasına olanak tanır. Örneğin, projeniz için gerekli olan tüm ana kodları toplayan bir uzak depo kurduğunuzu varsayalım. Çalışanınız, uzak depoda gözden geçirmeniz gereken bazı değişiklikler yaptığını size bildirdi. Çalışanınızın yaptığı bu değişiklikleri almak ve sisteminize kaydetmek için aşağıdaki komutu kullanabilirsiniz:

  • git fetch remote master

Bu komut, ana daldaki tüm kodları yerel deponuza geri yüklemenizi sağlayacaktır. Bu komutu uyguladıktan sonra, artık ana dalın tüm kodları yerel sisteminize kaydedilmiş olacaktır.

Git Fetch Komutları

 

  • –all     
    Tüm uzaktan kumandaları getir.
  • -a      –append                                                                                                                                                                                              Getirilen reflerin ref adlarını ve nesne adlarını .git/FETCH_HEAD dosyasının mevcut içeriğine ekler. Bu seçenek olmadan .git/FETCH_HEAD içindeki eski verilerin üzerine yazılacaktır.
  • –atomic                                                                                                                                                                                                                Yerel ref’leri güncellemek için atomik bir işlem kullanın. Bir hata durumunda ya tüm ref’ler güncellenir ya da hiçbir ref güncellenmez.                                                                                                                                                                                                                             
  • –depth=<depth>                                                                                                                                                                                                 Getirmeyi, her uzak dal geçmişinin sonundan itibaren belirtilen sayıda taahhütle sınırlayın. git clone tarafından –depth=<depth> seçeneği ile oluşturulan sığ bir depoya getiriliyorsa (bkz. git-clone[1]), geçmişi belirtilen sayıda işleme kadar derinleştirin veya kısaltın. Derinleştirilen commitler için etiketler getirilmez.

 

git fetch ve git pull arasindaki farklar nelerdir
git fetch ve git pull arasindaki farklar nelerdir

Git Pull Nedir?

Git pull komutu, git fetch ve git merge komutlarının amacına tek bir komutta hizmet eden bir komuttur. Pulls teriminin kendisi, bu komutu kullanan kullanıcının depodan veri veya içerik çekmeye çalıştığını açıklar. Git pull, kullanıcıdan izin istemeden veya belirtmeden git fetch işlevini yerine getirir ve kullanıcıya haber vermeden değişiklikleri birleştirir, yalnızca sonuç, yani bu komutun işleminin başarılı olup olmadığı ve uyarılar vb. kullanıcı tarafından bilinir.

Git Pull aynı zamanda riskli bir komut olarak da adlandırılır, çünkü bilgi vermeden birleştirmek istemediğiniz değişiklikleri karıştıracaktır. Git Fetch’in aksine Git Pull, depoda meydana gelen herhangi bir değişikliğin birleştirilmesi gerektiği varsayımına sahiptir, bu da birleştirme çatışması olarak bilinen bir yan etkiye neden olur. Git pull esas olarak tek bir kişi bir dal üzerinde çalışırken kullanılır. Değişiklikleri tekrar gözden geçirmeye gerek olmadığını fark ettiğinizde, tüm verileri doğrudan deponuza çekmek için doğrudan git pull komutunu kullanabilirsiniz.

Tıpkı diğer Git komutları gibi Git Pull da komutun daha verimli kullanılmasına yardımcı olan bazı hızlı seçenekler sunar. No-commit, git pull tarafından sağlanan ve değişiklikleri çektiği ancak birleştirilen commit’in listelenmeyeceği seçenektir. Rebase, commitlerin birleştirme geçmişini kaydettiği başka bir seçenektir.

 

Git Pull Komutları

 

  • -q–quiet                                                                                                                                                                                                                  Bu, hem aktarım sırasında raporlamayı susturmak için altta yatan git-fetch’e hem de birleştirme sırasında çıktıyı susturmak için altta yatan git-merge’e aktarılır.
  • -v–verbose                                                                                                                                                                                                            Pass –verbose to git-fetch and git-merge.
  • –[no-]recurse-submodules[=yes|on-demand|no]                                                                                                                                             Bu seçenek, doldurulmuş alt modüllerin yeni taahhütlerinin alınıp alınmayacağını ve aktif alt modüllerin çalışma ağaçlarının da güncellenip güncellenmeyeceğini kontrol eder . Kontrol işlemi rebase ile yapılırsa, yerel alt modül taahhütleri de yeniden düzenlenir. Güncelleme birleştirme yoluyla yapılırsa, alt modül çakışmaları çözülür ve kontrol edilir.

Kodların devamına kodların kaynağı olan bu linkten ulaşabilirsiniz

Özetle:

 

Git Fetch Git Pull
Fetch indirmeler yalnızca uzak bir depodan gelen yeni veriler. Pull, mevcut HEAD dalınızı uzak sunucudan gelen en son değişikliklerle güncellemek için kullanılır.
Fetch, uzak bir depoda gerçekleşen tüm şeylerin yeni bir görünümünü elde etmek için kullanılır. Pull yeni verileri indirir ve doğrudan mevcut çalışma kopyası dosyalarınıza entegre eder.
Fetch asla verileri manipüle etmez veya bozmaz. Pull, verileri indirir ve mevcut çalışma dosyasına entegre eder.
Kodunuzu birleştirme çakışmasından korur. Git pull’da, daha fazla yaratma şansı vardır birleştirme çatışması.
Çekilmiş bir depoda git fetch komutunu git merge komutuyla birlikte kullanmak daha iyidir. Herhangi bir depoyu zaten çektiyseniz git pull kullanmak mükemmel bir seçim değildir.

 

Fetch ve pull arasındaki farkları anlamak için, bu iki komut arasındaki benzerlikleri bilmeliyiz. Her iki komut da uzaktaki bir depodan veri indirmek için kullanılır. Ancak bu komutların her ikisi de farklı çalışır.  Git Pull kullandığınızda, uzaktaki veya merkezi depodaki tüm değişiklikleri alır ve yerel deponuzdaki ilgili dalınızda kullanılabilir hale getirirsiniz.  Git Fetch kullandığınızda, uzak depodaki tüm değişiklikleri alır ve yerel deponuzdaki ayrı bir dalda saklar. Bu değişiklikleri birleştirerek ilgili şubelerinize yansıtabilirsiniz.

Yani kısaca:

Git Pull = Git Fetch + Git Merge

 

git fetch ve git pull arasindaki farklar nelerdir
git fetch ve git pull arasindaki farklar nelerdir

Git Fetch ve Git Pull Arasındaki Temel Farklar

  1. Git fetch komutu sadece gerekli verileri uzaktaki depodan yerel deponuza getirirken, git pull komutu git fetch ile aynı işlevi yerine getirmenin yanı sıra aynı verileri çalıştığınız çalışma alanına getirir.
  2. Git fetch komutunda veriler sadece indirilirken, git pull komutunda veriler indirilir ve yerel deponuzda yüklemeler yapılır.
  3. Git fetch komutu veriyi getirme işlevini yerine getirirken, git pull komutu veriyi getirme ve birleştirme işlevini yerine getirir.
  4. Git fetch komutu yalnızca komut satırı sözdizimine sahipken, git pull komutu komut satırı sözdizimine ve değişiklikleri göndermek için çekme isteğine sahiptir.
  5. Git fetch şu komutu kullanır: git fetch <uzak> <branch> git pull ise şu komutu kullanır:

Sonuç

Sonuç olarak, git fetch ve git pull’un uzak depo ile etkileşime girerken çok sık kullanılan çok önemli komutlar olduğunu söyleyebiliriz. Uzak depodaki orijinal içeriği etkilemeden yapılabilecek değişiklikleri kontrol etmek veya gözden geçirmek istediğimizde, bu amaçla git fetch komutunu uygulayabiliriz.

Ancak uzaktaki deponun en son taahhütlerini yerel depomuzun taahhütleriyle birleştirmek istiyorsak, bu amaçla git pull komutunu kullanabiliriz. Git fetch ve git pull komutlarının her ikisinin de kendine özgü avantajları ve kullanım alanları vardır, git fetch komutu git pull komutuna göre daha güvenli bir seçenek olarak kabul edilir.

Referanslar

 

Site Footer

What is the Differencess