GitHub'da herkese açık bir deponun özel bir şubesine mi sahipsiniz?


128

GitHub deposunda yalnızca bir dal (ana) içeren genel bir PHP projem var.

Benim için özel olan ayrı bir şubeye / çatala sahip olmak istiyorum (özel GitHub depoları için ödeme yaptım). Özel şubeden / çataldan genel repoya veya tam tersi değişiklikleri birleştirebilmek istiyorum.

Bunu akılda tutarak, işte sorularım:

  1. Halka açık bir depoda özel şubem olabilir mi?
  2. Herkese açık depomu kendi özel şubeme / çatalıma çatallayabilir miyim?
  3. Yukarıdakilerin her ikisi de mümkünse, ileriye dönük en iyi yol hangisidir? İkisi de yoksa, nasıl ilerlemeliyim?

1
En iyi fikir, genel deponuzu, genel depoya geri göndermediğiniz (veya tersi) birkaç dal oluşturduğunuz özel bir depo olarak çatallaştırmak değil midir?
Legolas

1
Sorduğum şey buydu, herkese açık deponun bir kopyasını oluşturabilmek istiyorum, ancak güncellemelerimin gizli olmasını istiyorum (belirli şeyleri herkese açık hale getirmek istemiyorsam)
Lizard


@assylias, cevap olarak verebilir misin? bence en iyi cevap bu ve makaleyi bulmadan önce yorumunuza dikkat etmedim.
mbh86

@ mbh86 Bu gerçekten bir cevap değil, bağlantı olmak ve onu bir cevaba dönüştürmek için zamanım yok. Ancak, burada bir cevap oluşturmak için bu sayfanın içeriğini kullanmak istiyorsanız (orijinal siteye referansla), kesinlikle diğer kullanıcılara yardımcı olabilir ve siz de benim olumlu oyumu alırsınız :-)
assylias

Yanıtlar:


70
  1. Deponuzu çoğaltın .
  2. Çoğaltılmış depoyu GitHub'da özel yapın.
  3. Özel depoyu makinenize kopyalayın
  4. Genel deponuza bir uzaktan kumanda ekleyin (git uzaktan genel git@github.com ekleyin: ...)
  5. Herkese açık deponuza yönelik taahhütlerle şubeleri bu yeni uzaktan kumandaya itin. (yanlışlıkla yalnızca özel kodu işlemediğinizden emin olun)
  6. 'Git fetch public' kullanarak genel deponuza değişiklikler getirebilir ve ardından bunları yerel olarak birleştirebilir ve özel deponuza (kaynak uzak) aktarabilirsiniz.

1
Çoğaltma benim için iyi çalışıyor, ancak bunu tam tersi sırada yapmak zorunda kaldım, önce özel bir depo oluşturdum ve sonra oradaki genel depoyu komut satırından çoğalttım. Teşekkürler!
Joel

104

Halka açık bir repoda özel şubeye sahip olmak mümkün müdür?

GitHub'da, deponuz genel veya özeldir; sadece bir şubeyi seçerek "özelleştiremezsiniz".

Herkese açık depomu kendi özel şubeme / çatalıma çatallayabilir miyim?

Herkese açık deponuzu yerel makinenize kopyalayabilir, gerektiğinde şubeye kopyalayabilir ve "özel" şubelerinizi yukarı akışa itemezsiniz ( hangi şubenin orijine itileceğini belirterek : git push origin masterveya git push origin branch-i-want-to-be-public:master).

İlerlemenin en iyi yolu hangisi / nasıl ilerlemeliyim?

Hem genel hem de özel geliştirmeniz için GitHub'dan yararlanmak için, genel şubenizi GitHub içinde çatallamanızı, yeni çatalın ayarlarını "Özel" olarak değiştirmenizi ve ardından özel sürümü yerel makinenize klonlamanızı öneririm. Herkese açık değişiklikler yapmaya hazır olduğunuzda, her şeyi GitHub'daki özel çatalınıza aktarın ve ardından dalları seçerek genel depoya kopyalamak için çekme isteklerini kullanın.

Bir depoyu GitHub'da özel yapmak için, yükseltilmiş (ücretli) bir hesabınızın olması gerekir . Yalnızca ücretsiz hesabı sallıyorsanız, özel bir depoya ihtiyaç duymadan önerdiğim ilk işlemi - genel olarak yerel makineye, şubeye klonlayın ve belirli "genel" şubeleri menşe konumuna itin - kullanmaya devam edebilirsiniz.

Ücretli bir GitHub hesabınız varsa veya genel ve özel çatallar ve çekme istekleri ( BitBucket gibi ) sunan başka bir hizmet kullanıyorsanız , kodunuzu herkese açık hale getirmek için yukarıdaki yaklaşımlardan birini kullanabilirsiniz.


32
GitHub, herkese açık bir depoyu özel yapmanıza izin vermez. Depoyu özel hale getirmek için çoğaltmanız gerekir ve ardından genel depo ile olan bağlantıyı kaybedersiniz. Herkese açık depoyu, özel deponun yerel klonuna ayrı bir uzaktan kumanda olarak ekleyip ekleyemeyeceğinizi merak ediyorum. Sonra dalları o uzaktan kumandaya itin.
mj1531

3
Bunun anlamı, ne yazık ki, özel bir "çatal" dan deponun genel bir kopyasına değişiklikleri çekmek için çekme isteklerini kullanmanın mümkün olmamasıdır.
Michael Mior

6
GitHub artık ücretsiz hesaplara sınırsız özel havuzlar sunuyor.
Nathan F.

1
Önerilen iş akışının (özel bir çataldan PR) çalışmadığı göz önüne alındığında, bu gerçekten en iyi cevap olmamalıdır. @ Mj1531'in cevabı daha iyi bir iş akışıdır.
stewSquared

3

Aynı makinede yinelenen depolarla sonuçlanmadığı için daha iyi bulduğum başka bir çözüm var.

  • Özel olmasını istediğiniz şeylerle bir şube yapın.
  • GitHub'da yeni bir depo oluşturun, özel olarak ayarlayın.
  • Makinenizdeki deponuza ikinci bir uzaktan kumanda olarak yeni GitHub repo ekleyin.
  • Özel şubeyi ikinci uzaktan kumandaya itin.

Sonuç, 2 uzaktan kumandalı 1 havuzdur. 1 genel, 1 özel.
Sadece buna göre adlandırmaya zorladığınıza dikkat etmeniz gerekiyor.


1

1.) Halka açık bir repoda özel şubesi olabilir mi

Bildiğim kadarıyla hayır.

2.) Halka açık depomu kendi özel şubeme çatallayabilir miyim

Hayır, tam bir depoyu (1-n şube) tek bir şubeye ayıramazsınız. Aslında, tam deponun bir dalını ayırırsanız yapabilirsiniz. Uzaktan kumanda olarak ekleyin veya bir klondan başlayın.

Seyrek satın alma işlemleri de ilginizi çekebilir .

3.) Yukarıdakilerin her ikisi de mümkünse, bu ileriye dönük en iyi yoldur

n / a

4.) Hiçbiri mümkün değilse nasıl ilerlemeliyim?

n / a

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.