GitHub'da birden fazla çekme isteği nasıl açılır


139

Ne zaman bir açma çekme isteğini üzerinde GitHub'dan .
Son isteğimden bu yana tüm taahhütler ve tüm yeni talepler otomatik olarak bu isteğe eklenir .

Hangi taahhütlerin eklendiğini ve hangilerinin eklenmediğini kontrol edemiyorum.
Başka bir çekme isteği açmaya çalıştığımda, "Hata! Zaten bir çekme isteği var" hatası alıyorum.

Komut satırı ile uğraşmak zorunda kalmadan birden fazla çekme isteği açmanın kolay bir yolu var mı?

Yanıtlar:


116

Çekme istekleri bir şubeye dayanır.
Birden fazla işlem için bir çekme isteği açmanın tek yolu:

  1. Onları kendi dallarına ayırın .
  2. Çekme isteklerini oradan açın.

3
Tamam, bu sadece usta ile olduğunu düşündüm. Yani demek istediğim birçok dal oluşturabilirim (yani: git flow features) ve her biri için çekme istekleri yapabilirim ... Deneyeceğim!
Ziyan Junaideen

8
Şube'nin önceki taahhütlerin tarihini koruduğunu gördüm, bu yüzden yukarı akışa karşı bir çekme talebi hala tüm taahhütleri içeriyor.
eel ghEEz

2
Merhaba @ eel-gheez, bu konuda ne yapacağınızı anladınız mı? Diğer dallardan gelen değişiklikler gösterilmeden izole edilmiş PR'ler nasıl oluşturulur?
Jonathan Cross

3
Bu sorunu çözmez: Bir PR oluşturmaya çalıştığımda her iki dal (her biri en az bir taahhüt ile) karşılaştırılır. Neyi yanlış yapıyorum?
MERose

1
@eelghEEz Yeni bir şube oluşturmalı, git cherry- bu şubeye istediğiniz tüm taahhütleri seçmeli ve daha sonra bu şubeden bir çekme talebi yapmalısınız. Git'in her bir taahhüdünün önceki taahhüdüne bağlı olması çok önemli bir tasarım özelliğidir ve git'teki taahhütler sadece bir yama olarak değil, bundan önce hangi yamanın uygulandığını bilen bir yama olarak olmalıdır. Bu yüzden, farkları hala aynı olan, ancak önceki taahhütlerle bağlantıları farklı olan yeni taahhütlerle yeni bir şube yaratmalıdır.
MD

11

Bunu yapmanın en kolay yolu hub komutuyla ( https://github.com/defunkt/hub ).

Çekme isteği oluşturmak istediğiniz konu dalınızdan (bu örnekte "özellik") şunları yapabilirsiniz:

git pull-request

(önce şubenizi zorlamayı unutmayın!)

Ve GitHub'da "YOUR_USER: özellik" için yeni bir çekme isteği açacak.

GitHub'da zaten bir sorun oluşturduysanız, mevcut konuya bir çekme isteği bile ekleyebilirsiniz (web kullanıcı arayüzünden yapamayacağınız bir şey):

$ git pull-request -i 123
[ attached pull request to issue #123 ]

2

Aslında bunu başka bir dal oluşturmadan YAPABİLİRSİN, ama biraz oynamak gerekir.
İşte adımlar:

  1. Çekmek istediğiniz iki taahhüt aralığını tanımlayın. İşte bir örnek için kullanacağım:
    (diğer / master) A -> B -> C -> D -> E (sizin / master)
    B ve C'yi bir istekte çekmek istediğinizi varsayalım ve D & E bir başkasında.
  2. Çekme isteği yapın. Sol tarafa ("Taban") A konulmasını sağlayın. Sağ tarafa ("baş") C yerleştirme numarasını yazın.
  3. İlk isteğiniz için açıklamayı yazın.
  4. Başka bir istekte bulunun. Taban için C taahhüt numarasını yazın ve kafa için E (sizinkini / ustanızı) koyun.
  5. Açıklamayı yazın.

Gördüğüm gibi, çekme talebi C komutunu bir dallanma noktası olarak görüyor. Ya da başka birşey.


Sizinkinden / master'ınızdan bir taahhüt numarası ekleseniz bile diğer / master'ı sol taraf olarak bırakmalısınız. Ayrıca bu yöntem, bazı değişikliklere gerek duyulması durumunda birleştirme isteğine yeni taahhütler eklemenize izin vermez.
frisco

Bu cevaba bir çeşit takip yaptım, Github hakkındaki bazı bilgilerin aksine, bkz. Stackoverflow.com/questions/23159860
Mark Bennett

Bunun doğru görünen iki PR oluşturduğunu görebiliyorum, her biri tam olarak istenen taahhütleri içeriyordu. Ancak, açık konuşmak gerekirse, birleştiklerinde doğru olanı yapıyorlar mı? Olduğu gibi, ilk PR'nin B & C'yi diğer / master'a doğru şekilde birleştireceğini görebiliyorum. Ancak 2. Halkla İlişkiler birleştiğinde hangi şubeye katılacağını nasıl bilebilir? ('C' komutunda oluşturulduğundan, diğer / master üzerinde değil) PR'lerin hangi siparişin birleştirileceği önemli mi? (muhtemelen öyle)
Jonathan Hartley

1

Başlangıçta çekme isteği oluşturmaya gittiğinizde, yeni bir çekme isteği için iki ayrı form açarsanız, birleştirilecek farklı dallara işaret ettiği sürece bunları oluşturmanıza izin verir. Örneğin, biri master'a diğeri teste birleştirmek için iki ayrı İstek yapabilirim.


1

Git ve GitHub'da yeniyim ve OP ile aynı sorum vardı.

Muhtemelen OP zamanında mevcut olmayan bir çözüm buldum.

Durum: 3 değişikliğiniz var ve her birinin bir öncekinden oluşturulmasını ve her birinin kendi çekme isteğine (PR) sahip olmasını istiyorsunuz.

Sorun: Master'a çekmeye çalışan ilk PR'ı oluşturduğunuzda, her şey iyi görünüyor, ancak daha sonra ikinci PR için değişiklikleri yaptıktan ve birleştirdikten sonra (aynı dalı kullanarak) tüm değişiklikler aynı PR'da .

Mini Çözüm: Yeni bir şube oluşturun

git branch mini_change_2
git checkout mini_change_2

Şimdi kodu GitHub'a itiyorsunuz ve PR'ı oluşturuyorsunuz, ancak master'ın henüz ilk PR'daki değişikliklere sahip olmaması dışında, varsayılan olarak mini_change_2'den Master'a Çek ayarını yapıyor, bu nedenle PR1 ve PR2'deki tüm değişiklikleri içeriyor.

En İyi Çözüm: PR2'de hangi dalı birleştirdiğinizi belirtin.

Sadece ikinci PR'ı oluştururken varsayılanları kabul etmeyin, mini_chnage_2'yi Geliştirmek için çekeceğinizi söyleyin, bu sadece mini_change_2'deki değişiklikleri gösterecektir.

Şimdi mini_change_3 için yeni bir şube mini_change_3 ve PR oluşturun.

Sorun, onları birleştirmeye başladığınızda gelir ... ama bu farklı bir alıştırmadır.

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.