Neden git 'çekme isteği' 'push isteği' olarak adlandırılmıyor?


451

Bir şubeyi resmi bir depo ile birleştirmek için kullanılan terminoloji bir 'çekme talebi'dir. Değişikliklerimi resmi veri havuzuna aktarmayı talep ettiğim için bu kafa karıştırıcı.

Neden push isteği değil çekme isteği denir?


45
Büyük, yaşayan bir ağaç hayal edin. Ağaç, bir dalı içeri itmek için çok sağlam, bunun yerine ağaçtan bir dalı gövdeye çekmesini ve onu güçlendirmesini istemelisiniz.
Luke


2
Gitihub gibi bir uzak depo kullanılıyorsa, sürdürücünün isteği komut satırı üzerinden yerine getirmesinde uygulayacağı son komutlardan biridir git push. Bana her şeyi söylüyor ... (evet, onlar git çekme, sonra git itme verebilir, ancak itme istendi ve sonuçta ne olduğunu)
ebyrob

62
GitLab onları çağırır merge requests. Çok daha net, IMHO. :)
U007D

Yanıtlar:


377

Deponuzda bir kod değişikliğiniz varsa ve onu bir hedef depoya taşımak istiyorsanız, o zaman:

  • "Push", hedef depoda ( git push) bulunan değişiklikleri zorlamaktır .
  • "Çekme", değişikliklerinizi orada ( git pulldiğer repodan) alacak olan hedef depodur .

Bir "çekme isteği", hedef depodan değişikliklerinizi almasını istiyor.

Değişikliklerinizi göndermenizi isteyen hedef havuz bir "push isteği" olacaktır.


21
Bu benim için adlandırma kuralı ile ilgili bir sorun oldu: D & u sadece anlamak çok daha kolay yaptı. bankalarda para alım / satımının nasıl çalıştığını düşünmek.
nsuinteger

"Çekme" tanımınızı yeniden tanımlamanız gerektiğini düşünüyorum, çünkü "hedef depo", "değişiklikleriniz" hakkında kafa karıştırıcı. Belki de "deponuzun yakalama hedefinizdeki depodan değiştiğini" söylemek istersiniz?
MrPisarik

9
Ana fikir, "push" / "pull" terminolojisinin, aktarılan bilgiyi oluşturan tarafı değil , nihayetinde transferin gerçekleşip gerçekleşmeyeceğine karar veren tarafı tanımlamak için kullanılmasıdır .
Jess Riedel

3
Kimi talep ettiğinize bağlıdır , eğer ekibiniz ise "itme talebi" daha mantıklıdır, eğer uzak depo ise kesinlikle doğru.
A77

2
Bir şirkette merkezi, özel bir Git sunucusuyla çalışırken, genellikle ona yeni bir şube ekleyebilir ve bir kod incelemesi isteyebilir ve iş arkadaşlarınızdan birleştirebilirsiniz. Bu nedenle, bu iş akışı için "çekme isteği" teknik olarak doğru değildir, ancak herkes ve GUI tasarımcıları tarafından seçilen terim olduğu ortaya çıktı.
Sven

88

Bir çekme isteği gönderdiğinizde, resmi repo sahibinden, kendi repodan bazı değişiklikler almasını istiyor (talep ediyorsunuz). Bu nedenle "çekme talebi".


2
ancak sahibi onayladıktan sonra bir git birleştirme işlemi gerçekleştirecek
Jervie Vitriolo

2
Git çekme birleştirme ve birleştirme birleşimidir, bu nedenle çekme zaten birleştirme anlamına gelir.
Xiong Chiamiov

37

tl; dr, itmeye izin verilmediğim için, repo sahibine güzel bir istekte bulunacağım, böylece çekmeye karar verdiler


Kodu bir depoya kimler iletebilir?

Herkes (muhtemelen kötü veya eğitimsiz veya bilinmeyen) gelip şunu söyleyebilseydi burada olsaydı ben sadece ana şube için itti ve tüm kod HAHAHA berbat! ?

Elbette onun bunu yapmasını istemiyorsun. Varsayılan olarak bir güvenlik ağı ayarlanmıştır, böylece hiç kimse repolarınıza itemez. Sen edebilirsiniz Ortak çalışan olarak diğerlerini ayarlamak sonra onlar itebilir. Güvendiğiniz kişilere böyle bir erişim vereceksiniz.

Dolayısıyla, ortak çalışan değilseniz ve zorlamaya çalışıyorsanız, izniniz olmadığını belirten bir hata alırsınız.


Peki diğer geliştiriciler itme izni verilmeyen bir repoya nasıl itebilirler?
Herkese erişim veremezsiniz, ancak başkalarına bir çıkış / giriş noktası vermek istersiniz, böylece 'repo sahibinden bu kodu repoya çekme talebinde bulunabilirler '. Repoyu erişilebilir hale getirerek, çatallayabilirler ... değişikliklerini kendi çatallarında yapabilirler. Değişikliklerini kendi çatallarına itin . Bir kez kendi uzaktan repolarında:

Çatallarından bir çekme isteği yaparlar ve (doğrudan itemeyeceğiniz) yukarı yönlü repo sahibinin çekme talebini birleştirip birleştirmeyeceğine karar verir.


Ayrıca yarı ilişkili bir soru okumanızı tavsiye ederim Git push tam olarak ne olur? Neden bir git itmesi tıpkı bir git birleştirme gibi düşünülmüyor?


4
itme ve çekme arasında bir izin farkı olduğunu fark etmeyen insanlar için bu cevap çok mantıklı.
buddie

29

Çekme Talebi: Ben talep etmek size çekin mayın.


7
Bir kullanıcı olarak benim bakış açımdan görüyorum, "Sana itmek istiyorum?" I >>> You - Referans noktasını aynı bağlamda iki kez değiştiriyorsunuz ... rathern I >>>> You <<<< Mine
Marin

1
Bu cevap en mantıklı.
shivams

Kolay peezy limon sıkmak
Ivan Ivković

Senden benimkini çekmeni rica ediyorum ..... nereden ??? Bunun orijinal projenin bir çatalından olacağını anlıyorum? veya yerel bir kopyadan mı?
KansaiRobot

5

Başkasının repolarına bir şeyler itmek istiyorum.

Bu konuda itme (ya da çekme) iznim yok.

Sahip / ortak çalışanların izinleri vardır. İtme kadar iyi de çekebilirler. İtemem.

Bu yüzden, benden bir çekiş yapmalarını istiyorum - dolaylı olarak onlardan itme gücümü kabul etmelerini istediğim anlamına geliyor.

Yani, itme talebi yok. Sadece çekmek için. Ve bir itmenin kabulü için.

Bu nedenle, bir 'çekme' isteği. Ve bir 'itme' talebi değil.


4

Bu eylemlerde anahtar olan "Talep" kelimesidir. Ayrıca "İşimi almanı istediğim bir şey var, kabul ediyor musun?" - "Çekme Talebi".

İlk başta biraz kafa karıştırıcı, ama sonunda mantıklı.


1

Bunu daha iyi anlamak ve sonsuza dek hatırlamak için resmetmeniz gerekir.

Büyük, canlı bir ağacı {deponuz olarak} hayal edin. Ağaç, bir dalı içine sokmanız veya içine yeni bir parça eklemeniz için çok sağlamdır {yeni bir dal oluşturmayı sembolize eder veya içine kod itersiniz}, bunun yerine ağaçtan bir dalı gövdeye çekmesini veya sizden değişiklikler.

“Çekme talepleri” terimi dağıtılmış niteliktedir. Değişikliklerinizi sadece depoya göndermek yerine (örneğin Subversion gibi merkezi bir depoda yaptığınız gibi) değişikliklerinizi ayrı ayrı yayınlıyorsunuz ve bakım sahibinden değişikliklerinizi yapmasını istersiniz. Koruyucu daha sonra değişiklikleri gözden geçirebilir ve söz konusu çekme işlemini yapabilir.

Yani temelde katkıda bulunmak istediğiniz repo yazma erişimi olan çocuklar "repo" çekme "için" talep ".

Çekme istekleri, GitHub'daki bir depoda bir şubeye aktardığınız değişiklikleri başkalarına anlatmanıza olanak tanır. Bir çekme isteği açıldıktan sonra, olası değişiklikleri ortak çalışanlarla tartışıp inceleyebilir ve değişiklikleriniz temel şubeye birleştirilmeden önce takip taahhütleri ekleyebilirsiniz. Github Açıklaması


0

Bunu düşünmek istiyorum çünkü onun saçma terminolojisini düşünüyorum ben size PUSH şey istiyoruz ve madenin ilavelerine çekmeye başkası soran tersi mengenesi düşünmediğini. Bu nedenle PUSH REQ olarak değiştirilmelidir. çünkü ben aktif kısımım. Ok benimle başlayarak diğer tarafa gider, diğer uçtaki Goofy'e değil. BENİM NACİZANE FİKRİME GÖRE.


0

Bu şekilde düşün. Yerel depo vs Uzak depo.

  • Ne zaman itin Yerel'den. ( git push) - diğer bir deyişle, Uzaktan depo edilir Çekme sizden kodları (Yerel).

Bir şey istiyorsun. O zaman kendinize sorun,

  • Uzak depo Sizden kodları çekmek istiyor musunuz ? - Çekme Talebi.

Bence itme taleplerinde bulunamayacağınız bir ayrım yapmak önemlidir. Eğer itebilirseniz ve bunu yaparsanız, bu bir talep değildir, usta ile birleşir. Git hub deposuna yönelik bir çekme isteği, kodunuzun birleştirilmesini istiyor.
James

Bunu sadece örnek olarak kullanıyorum. Elbette, Github kodu zorlayabilir. ama cevabımı düzenleyeceğim.
Jin Lim

0

Korkarım bu cevapların çoğunda 'talep çekme' ne anlama geliyor? veya 'Push request' ne anlama gelir? OP sorusundan ziyade: Neden push talebi değil çekme talebi denir?

Normalde bu tür bir soru değiştirme kabul edilebilir, ancak bu durumda OP'nin bu değiştirme sorularının cevaplarını bildiği açıktır, bu nedenle cevaplamak çok yararlı değildir.

Sadece GitHub'da bu terimi kullanan insanlar kesin olarak biliyor. Bununla birlikte, bu terminolojik seçimin "dışarıdan havuza gelen değişiklikler" olgusu ile ilgili aşağıdaki bakış açısına benzer bir şey yansıttığı görülmektedir: Bakımcı eylemi gerçekleştirir (çeker) .

Bununla birlikte, bir talep aynı zamanda bir eylemdir ve bu eylemin yapıcısı sürdürücü değil, daha çok (daha fazla eylem yapan, yani iş yapan) gönderen kişidir. Böylece 'çekme talebi' terimi , ajanın kim olduğu konusunda karışıklık yaratır . Sonuçta karışıklık, bir talebin özyinelemeli yapısı nedeniyle ortaya çıkar: Talep, hem birincil aracı tarafından yapılan bir eylem hem de ikinci aracı tarafından gelecekte yapılacak bir eylem talebidir.

Durum, "evimizi inşa ettik" ("evimizi inşa etmek için başka birine para verdik" yerine kullanılan) gibi yaygın olan dilbilimsel yapılara oldukça benzer, birincil eylemin sorumluluğu bariz orijinal ajandan yönetsel sosyal rolü yerine getiren ikincil bir temsilci.

Buradan, terminolojik seçimin nedeninin yönetimsel çalışmanın birinci sınıf emek olduğu görüşünün meşrulaştırılması olduğu sonucuna varılabilir . Ayrıca, bu terminolojik seçim hakkındaki karışıklığın nedeni, yönetici olmayan işçilerin doğal olarak farklı bir bakış açısına sahip olmaları olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.