2010-11-17 14 views
80

Zaman zaman bu sorunla karşılaşıyorum.Bir readonly git klonu github'dan çatallı birime nasıl dönüştürülür

Diyelim ki, bazı sorunlarda çalışıyorum çünkü rayların kaynak kodunu okumak için takip ettim. Bir şey test edilmiş ve şimdi ben istiyorum çözüleceğini Araştırma sırasında

git clone git://github.com/rails/rails.git 

bakmak için çekirdek ekibin raylar. Değişikliklerimi çatallı bir rayı sürümüne nasıl ittiririm.

Klonlandığımda, bir çatallı sürümü değil, salt okunur bir sürümünü klonlamadım.

Bu, forking'e karşı olduğumdan değil. Bazen sadece göz attığımı düşünüyorum, sonra bir şeyler eklemek istiyorum.

+0

Cevabın sizin için çalışıp çalışmadığını veya daha fazla bilgiye ihtiyacınız olup olmadığını kontrol etmek ve görmek istiyorum. Daha fazla açıklama veya açıklama gerekiyorsa, bana bildirin ve size yardımcı olmaya çalışabilirim. Eğer değilse, sorunun yeterince yanıtlandığını belirtmek için bir cevabı kabul etmek isteyebilirsiniz. –

cevap

1

Önemli değil. İstediğiniz takdirde, çatalsız repo'unuzu belirterek başka bir uzaktan kumanda ekleyebilirsiniz. Değişikliklerinizi buna itin.

+0

Başka bir uzaktan kumanda nasıl ekleyebilirim? Afedersiniz. Git dünyasına acemi. –

+1

daha sonra çatal atabilir ve henüz çatallanmamış bir repoya bastırabilirsiniz. Forking, ilgilendiğiniz deponun "kopyasını" kendiniz yapıyor. –

+0

şimdilik github'da yeni bir repo hazırlayabilirsiniz. Raylar repodan klonlandığınız yere uzaktan ekleyin ve sadece yenisine doğru itin. Sanırım peşinde olduğun şey bu. Gerekli bir şey yok. –

110

Bir repo klon yaptığınızda, otomatik olarak klonladığınız repoya karşılık gelen origin adlı bir uzaktan denetim kurar. Bu artık akıntıya karşı Raylar projeye işaret ama ne gerek size zorlayabilir kendi çatal yaratmaktır ve sonra buna zorlayabilir yüzden orada işaret eden bir uzaktan ayarlandı.

ilk adım yukarı GitHub proje sayfasındaki "Çatal" düğmesini tıklayın (GitHub instructions on forking bir görüntü) şudur: bulmak ve bunun için URL'yi kopyalayın Bunu yaptıktan sonra

GitHub fork button

repo. Okuma ve yazma erişimine sahip olan SSH URL'sini kullandığınızdan emin olun. Kullanıcı adınızın nadal olduğunu varsayarak, [email protected]:nadal/rails.git gibi bir şey olmalıdır.

Şimdi ondan çekerek veya sahip erişimine bağlı olarak iterek Git uzak bir depo izlemek için izin veren uzaktan oluşturabilirsiniz. origin'u, iteceğiniz (hangisi kaç kişi ayarlandıysa) ile değiştirmeyi veya origin akışını yukarı yönde işaretlemeyi ve bunun yerine yeni bir uzaktan kumanda oluşturmayı seçebilirsiniz. İlk kurulumu nasıl yapacağımı göstereceğim; ikinci anlamaya kolay olmalı.

upstream bunu muhtemelen etrafında bir yere memba dalını tutmak isteyecektir, GitHub üzerinde çatalını işaret edecek origin değişebileceğinden yeniden adlandırmak için:

git remote rename origin upstream 

Şimdi çatala yeni uzaktan işaret oluşturun:

git remote add -f origin [email protected]:nadal/rails.git 

Şimdi de yeni çatala itmek mümkün olmalıdır:

git push origin master 
Eğer GitHub'dan kadar aktardıktan değişikliklerden memnun olup, ona bakmak Raylar ekibinden birisini istiyorum kez

, iki seçeneğiniz vardır. Biri GitHub kullanılarak send a pull request; Bunu yapmak için orada dokümanlar bakın. Yalnızca bir veya birkaç küçük yamalar varsa, ancak, raylar ekibi create a Lighthouse ticket ve yama eklemek tercih ederim; Daha fazla bilgi için contributing to Rails numaralı yönergeye bakın.

düzenleme İşte neler olduğunu göstermek için bir diyagram. Yaptığınız şey sadece yukarı yönlü raylar repo klonudur;

İşte
 
Github: git://github.com/rails/rails.git 
        ^
        | 
Remotes:   origin 
        | 
Your machine:  rails/ 

sen çatallı eğer ne olsun ve sonra çatalını klon: yani şimdi origin olarak git://github.com/rails/rails.git atıfta kendi makinede, kendi repo var

 
Github: git://github.com/rails/rails.git <-- [email protected]:nadal/rails.git 
                 ^
                  | 
Remotes:            origin 
                  | 
Your machine:           rails/ 

izlerseniz benim talimatlar, burada alacak budur:

aynı zamanda birsahip olması dışında, sadece çatallama almak versiyonu gibi
 
Github: git://github.com/rails/rails.git <-- [email protected]:nadal/rails.git 
         ^        ^
         |         | 
Remotes:   upstream       origin 
         |         | 
Your machine:   \-------------------------------rails/ 
uzaktan böylece resmi değişiklikleri takip edebilir ve bunları kodunuza birleştirebilirsiniz (eğer çatallı versiyonu oluşturmuş olsaydınız, muhtemelen upstream uzaktan kumandayı da ekleyebilirsiniz).
+0

Orijinal posterin söylediği gibi, bazen orijinal yerine herhangi bir bağlantı olmaksızın bazı işleri kaydetmek isteyebilir. –

+1

@adymitruk Hayır, OP, bazen upstream repo'yu kıpırdamaksızın klonladığını, ancak daha sonra katkıda bulunmayı istediğini söyledi. Özellikle, değişikliklerini Rails'in çatallı versiyonuna zorlamak istediğini belirtti. Orijinal ile hiçbir bağlantıya gerek kalmadan iş kaydetmek isteyen bir şey söylemedi. –

+0

o gerçek projeye katkıda bulunmak isteyip istemiyorsa o zaman mümkün olduğu kadar kötü bir şekilde istifade etmek isteyebilir. –

0

Ya da, çatal takmak istemiyorsanız ve bakım ekibine bağlı olarak, onlara bir yama ekleyebilir ve gönderebilirsiniz. Genel olarak, repo'unuzu ya diğer yorumlarda açıklandığı gibi github'da ya da kendi gitme repo'unuzda hazırlayarak yapmanıza ve repo ve dalınıza dahil etmelerini istediğiniz bilgileri orijinal repoda saklayanlara sunabilirsiniz.

+1

Niçin sadece bir tek çatal olduğu için niçin bir şekilde unutulmak istemiyor anlamıyorum! Bu projenin yepyeni bir versiyonu değil - sadece kaynak kodun bir kopyasını birleştirdiğin gibi. Sadece bir yama dizisi gibi. – alternative

+1

Kişinin bir Github hesabı olmaması, ancak projeye katkıda bulunmasını isteyebilir. Projeyi klonlayabilir, ekleyebilir ya da eklerini ya da dallarını eklenmek üzere orijinal projeye gönderebilirler. Ama doğruysa, eğer yapamazsan çatallanmamak için bir _real_ sebebi yoktur. – Svenito

3

Klonlanandan çatallı moda geçmek için çok kolay bir yol http://hub.github.com/'dan sarıcı kullanıyor. Bu yüklendiğinde

, sadece salt okunur klon içinden

hub fork 

çalıştırın.

+0

Güzel çalışır. Çatal, github kullanıcı adınızla aynı uzak adla oluşturulacaktır. – Zitrax

İlgili konular