Yanıtlar:
15.08.2016 itibariyle GitHub, GUI aracılığıyla bir çekme talebinin hedef dalını değiştirmeye izin vermektedir. Edit
Başlığın yanına tıklayın , ardından açılır menüden şubeyi seçin.
Artık açık bir çekme isteğinin temel dalını değiştirebilirsiniz. Bir çekme isteği oluşturduktan sonra, çekme isteğindeki değişikliklerin farklı bir dalla karşılaştırılması için temel dalı değiştirebilirsiniz. Doğru temel şubeyle yeni bir tane açmak yerine orijinal çekme isteğinizin temel şubesini değiştirerek, değerli çalışmalarınızı ve tartışmaları sürdürebilirsiniz.
Gönderen, çekme talebini yayınladığında bunu değiştirebilir, ancak bunu bir kez yayınladığında değiştiremezsiniz.
Öte yandan, yanlış hedeflenmiş çekme istekleri için yarı düzenli olarak yaptığım dallanma ve itme işlemlerini manuel olarak birleştirebilirsiniz.
hub
Cevheri , çekme isteğinin bileşenleriyle çalışırken yararlı bulabilirsiniz .
Bu mücevher, manuel süreci tamamlıyor:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
git merge --no-ff ...
Cevabında @ GuillermoMansilla'nın bahsettiği gibi kullanmanızı tavsiye ederim .
Diğer yanıtlarda bahsedilen hub cevherini kullanmanın bir alternatifi, yerel olarak çekme isteklerini birleştirmek için komut satırını kullanmaktır , bu da şunları yapmanızı sağlar:
$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*
Yukarıdaki komutlar, yalnızca aşağıdaki satırı .git/config
dosyanıza ilk olarak eklerseniz doğrudan çalışır :
fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*
Bunun yaptığı şey TÜM çekme isteklerini indirmenize izin vermektir . Bu, büyük depolar için istenmeyebileceğinden, GitHub git fetch origin pull/ID/head:BRANCHNAME
, yapılandırma dosyasının değiştirilmesini önleyen ve yalnızca bu tek çekme isteğini indiren sözdizimini öne çıkarmak için talimatları değiştirdi .
Mevcut çekme isteğini değiştiremezsiniz, çünkü bu sizin değildir, ilgili kaynak depo hala mevcutsa kolayca yeni bir tane oluşturabilirsiniz - evet, başkasının olsa bile.
Gönderenin havuzuna gidin, ardından aynı kayıtları kullanarak kendi havuzunda yeni bir çekme talebi oluşturun, ancak doğru hedef dalı doğru ayarladığınızdan emin olun.
Ardından kendi deponuza geri dönün ve yeni çekme talebini kabul edin. İşte bu kadar!
Daniel Pittman'ın çözümünde yanlış bir şey yok, ancak ben bu birleşmeleri "ileri sarma yok" olarak ele alacağım, yani 3 numaralı adımı şu şekilde değiştireceğim:
git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}
Kullanıldığında --no-ff
, geçmişin okunması daha kolay olacaktır. $n
Taahhütlerin nereden geldiğini açıkça söyleyecek $branch
ve o dalda yapılan bir şeyi geri almanız gerektiğinde hayatınızı kolaylaştıracaktır.
Ayrıca eoinoc'un sorusuna cevap vermek ve ek bir ipucu vermek için:
Birleştirme işlemini yaptıktan sonra, git cli'niz bir mesaj yazmanızı isteyecek, genellikle genel bir mesaj görünerek şöyle bir şey söyleyecektir:
Uzaktan izleme şubesini 'kullanıcısını / şubesini' şubenizle birleştirin
Bu mesajı düzenlediğinizden ve çekme talebi numarasına bir referans eklediğinizden emin olun. Yani: (Çekme talebi numarasının 123 olduğunu varsayarsak)
Uzaktan izleme şubesini 'kullanıcısını / şubesini' şubenizle birleştirin
refs # 123 her şeyi çözüyor ...
Bu nedenle, bir dahaki sefere github sorunları / çekme istekleri sayfanızı ziyaret ettiğinizde ve belirli bir çekme isteğini kontrol ettiğinizde, birleştirmeyi yaptığınız yere bağlı bir bağlantıyla birlikte mesajınızı göreceksiniz.
İşte kastettiğim şeyin bir ekran görüntüsü.
Bunu yapmak için deponuzun ana sayfasına gidin, dallara tıklayın ve benim durumumda "dev" olan varsayılan şubeyi ana daldan başka bir şeye değiştirin.
Bundan sonra, birisi bir çekme isteği oluşturduğunda, merge
düğme isteği otomatik olarak ana değil "dev" ile birleştirir.