SORU
30 AĞUSTOS 2011, Salı


Nasıl GitHub çatallı bir depoyu güncellemek için?

Geçenlerde bir proje çatal ve çeşitli düzeltmeler uygulanır. Ben sonra kabul edilen çekin bir istek yarattı.

Birkaç gün sonra başka bir değişiklik, başka bir katılımcı tarafından yapıldı. Çatalımı bu değişiklik... Nasıl çatalımı bu değişim alabilir miyim? içermiyor yani

Katkıda bulunmak için daha fazla değişiklik olduğunda yeniden oluşturmak çatalımı silmek gerekiyor mu? Yoksa bir güncelleme düğmesi?

CEVAP
30 AĞUSTOS 2011, Salı


Çatallı deponuzun yerel klon, orijinal GitHub deposunu ekleyebilirsiniz "". uzaktan ("Uzaktan kumanda" depoların URL için takma adlar - origin Bir, örneğin.) gibi Sonra Geliş yönündeki deposundan tüm dalları getir, ve iş akış Yukarı sürüm üzerinde çalışmaya devam etmek için rebase. Komutlar açısından bu gibi görünebilir:

# Add the remote, call it "upstream":

git remote add upstream https://github.com/whoever/whatever.git

# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:

git fetch upstream

# Make sure that you're on your master branch:

git checkout master

# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:

git rebase upstream/master

Eğer ana şube tarihi yeniden yazmak için, örneğin, diğer insanlar klonlanmış olabilir, çünkü istemiyorsun eğer o git merge upstream/master ile son komut değiştirmeniz gerekir. Ancak, mümkün olduğunca temiz olduğundan daha fazla çekme isteklerini yapmak için, muhtemelen daha iyi rebase.


Güncelleme: upstream/master üzerine şube rebased varsa sırayla bas GitHub kendi çatallı deponuzu onu itmeye zorlamak gerekebilir. Bunu yapmak istiyorum:

git push -f origin master

Sadece ilk kez rebased sonra -f kullanmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Moto Journal

    Moto Journal

    28 Mayıs 2007
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010