GitHub depo çatalını web arayüzünde nasıl güncellersiniz?


58

Birkaç ay önce başka bir projeden çektiğim bir Github deposuna sahibim. Şimdi birkaç ay sonra ve orijinal ana repo değişti. Repo'yu bu değişiklikleri yansıtacak şekilde güncellemek istiyorum. Bu Github web arayüzünde mümkün mü? Yoksa depoyu silmeye ve yeniden çatallamaya ihtiyacım var mı?




Yanıtlar:


43

Çekme isteklerinin nasıl gerçekleştiğini deneyebilir ve tersine çevirebilirsiniz.

  1. Çatalına git.
  2. Çekme İsteği Verin

    Varsayılan olarak bu, sağdaki çatalınız olacaktır ( baş repo ), taahhütlerini ve soldaki orijinal repoya ( temel repo ) geçmek için istekte bulunur.

  3. Hem baz repo hem de head repo için açılan menüyü tıklayın ve birbirinizin repolarını seçin.

    Özgün depo sağda (itmek için değişiklikleri olan) iken, sizlerin solda listelenmesini (değişiklikleri kabul etmek) istersiniz. Bu resimde gösterildiği gibi:

    kendi kendine yapılan çatal

  4. Çekme isteğini gönder

    Çatalınızda herhangi bir değişiklik olmadıysa, birleştirmeyi otomatik olarak kabul edebilmelisiniz.

Kodunuz bir şekilde çakışıyorsa veya yeterince temiz değilse, GitHub web arayüzü üzerinden güncelleme yapmak işe yaramaz ve bu kodu alıp çatalınıza geri koymadan önce makinenizdeki tüm çakışmaları çözmeniz gerekir.


3
Bu hala çalışıyor ama evet ideal değil. Bu kesinlikle sadece bir oyun. Bunu yapmak için uygun bir yol değil.
Jake Wilson

3
Kötü bir fikri onayladım. Bu, depoyu Github'un orijinal projeye boş bir taahhütte bulunma talebinde bulunmanızı önerdiği şekilde kirletiyor. Bakınız örneğin github.com/dthommes/RoboSpring/pull/3 - Katkıda bulunduktan sonra, senkronize ettim ve şimdi Github benden dthommes / master'dan "Birleştirme çekimi isteği # 1" etiketli "Çatalımı senkronize etme" taahhüdünde bulunmamı istedi. … "
usr-local-ΕΨΗΕΛΩΝ

1
Bunun artık işe yaradığını sanmıyorum. Biraz garip gözükse de, bunu yapmanın basit bir yolu yok.
Toby Allen

1
Sadece bunu denedim ve hemen vermedi görünmek çalışmak - değiştirirken birini hemen bir "karşılaştırma değişiklikleri" sayfa açtığını çatalların. Ancak "çatallarla karşılaştır" bağlantısına tıklanması, diğer çatalın yine de değiştirilmesine izin verdi. Belki de cevabınıza bu etkiye bir şey ekleyebilirsiniz.
Peter Mortensen

4
GitHub bir "Çatal Eşitleme" butonu eklemeli, böylece milyonlarca
PR oluşturmak zorunda kalmayacaksın. Şimdilik

22

Daha kolay olacak.

  1. Git Çatal Repo (sizin) ve sadece düğmeye tıklayın - "Yeni çekme isteği".
  2. Açılan sayfada, açılır pencerelerin altındaki mesajda "kaideyi değiştirmek" için küçük bir bağlantı var. Linke tıklayınız.
  3. Şimdi otomatik olarak orijinal reponuza yönlendirecektir. Click Çekme Talebi oluşturun düğmesi ve bazı mesaj taahhüt yazma.
  4. Şimdi, otomatik çatallı repo yol tıklama çekme isteğini Birleştirme ve birleştirme onayla bitirmek için.

Bu yeşil düğmelerin ne olduğunu açıklığa kavuşturmalısınız ve bu harika bir cevap olacaktır ....
Rodrigo Graça

Bu kesinlikle 4/2016 itibariyle en iyi cevap.
dr01

7
Bu yöntemle ilgili sorun, şubenize ekstra bir taahhüt eklemesidir, bu nedenle gerçekten yukarı havza deposuyla senkronize değildir .
Mottie

@Mottie Çatalımızın en son yukarı akış sürümünün arkasında olup olmadığını ve bunları çekmeden değişikliklerin farklı olduğunu görmemizin bir yolu var mı?
Sujay Phadke,

1
@SujayPhadke Şube altındaki ana çatallı repo sayfanızdaki seçme düğmesi bir mesaj olacaktır: "Bu şube xx, xxxx: master'ın arkasındadır." Farkı görmeye gelince, mesajın aynı satırda "karşılaştır" butonu var; veya bu linke gidebilirsiniz:https://github.com/{user}/{forkedRepoName}/compare/master...{originalRepo}:master
Mottie

3

Çatallı GitHub deposunu, uzaktaki yukarı akış deposundaki değişikliklerle nasıl güncelleştirilir


GitHub Yardım'dan talimatlar:

Uzak Çatal Yapılandırma

Çatal Senkronizasyonu


Kurulum / Çalıştırma Talimatları:

Git Bash (Windows) veya Linux / Mac Terminalini açın

Deponuzu henüz klonlamadıysanız, geliştirme klasörünüzün çalışma dizinine geçmeli ve iş istasyonunuza klonlamanız gerekir.

$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git

İş istasyonunuzdaki çatallı deponuzun çalışma dizinine geçin.

$ cd /user/development/my_forked_repo/

Çatalınız için geçerli yapılandırılmış uzak depoyu listeleyin.

 $ git remote -v

origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

Çatalla senkronize edilecek yeni bir uzaktan giriş deposu belirtin.

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

Çatalınız için belirlediğiniz yeni giriş deposunu doğrulayın.

$ git remote -v

origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

Dalları ve ilgili taahhütlerini yukarı havza deposundan alın. Master'a verilen taahhütler yerel / ana bir şubede depolanacaktır.

$ git fetch upstream

remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master

Çatalının yerel ana şubesini kontrol et.

$ git checkout master

Switched to branch 'master'

Giriş / master'dan yerel ana şubenize değişiklikleri birleştirin. Bu, çatalınızın ana kolunu, yerel değişikliklerinizi kaybetmeden, yukarı havza deposuyla senkronize eder.

$ git merge upstream/master

Updating a422352..5fdff0f
Fast-forward
README                    |    9 -------
README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

Yerel şubenizde benzersiz bir taahhüt yoksa, Git bunun yerine "hızlı ileri sarma" gerçekleştirir:

$ git merge upstream/master

Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Artık taahhütleri çatalınıza itmeniz gerekecek.

$ git push

Daha önce kimliği doğrulanmamışsanız, github kullanıcı adınızı / şifrenizi isteyecektir. Onaylandıktan sonra, yeni komisyonların çatalınıza itilmesi ve github üzerinde görünür olması gerekir.


5
Web arayüzü kullanan bir çözüm için umut verdiğiniz ayrıntılı cevabınız için teşekkür ederiz.
Toby Allen
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.