GitHub'da bir wiki sayfası nasıl çekilir?


160

GitHub'da düzenlemeye açık olmayan bir wiki sayfası gördüm . Sonra projeyi çatalladım, "sonumda" düzenledim ve bir çekme isteği yapmaya çalıştım. Görünen o ki, wiki projede değil ve üzerinde değişiklik yapmanın bir yolu yok.

E-posta göndermenin dışında, bu durumda wiki'de bir değişiklik önermek istersem ilerlemenin bir yolu var mı?

Bu noktada , "Benzer başlıklara sahip sorular" altında alternatif gibi görünen bir şey buldum , ancak onunla çekme isteğini henüz yapamadım ve bu yüzden alt modüllerin bu amaç için iyi bir yol olduğundan emin değilim. Şimdi görüyorum ki bir şekilde dallayabilirim ... Öyleyse bu yol mu?



Bu konuda partiye geç kaldığımı biliyorum, ama .wikigit repo'yu ana proje repo'sunun bir alt modülü olarak kullanmak, bu duruma en iyi yaklaşım gibi görünüyor.
ipatch

GitHub wikis'te
Vadzim

Yanıtlar:


120

GitHub , wiki deposu için çekme isteklerini desteklemez , yalnızca ana depo (bu biraz utanç, IMO, ancak anlayabiliyorum).

Bir projenin, wiki'leri için topluluk güncellemelerini yönetirken, kaynak kodunda olduğu gibi sıkı kontrolünü devam ettirmesinin ilginç bir yolu:

Benim önerilen iş akışı şudur:

  1. Github hesabınızda Taffy wiki çatalını manuel olarak oluşturun:
    • Github hesabınızda yeni bir havuz oluşturun. Buna "Taffy-Wiki" diyelim.
    • Taffy wiki deposunu bir yere yerel makinenize kopyalayın: git clone git@github.com:atuttle/Taffy.wiki.git
    • Orijinal "orijinal" uzaktan kumandayı kaldırın ve github repo'nuzu yeni "orijinal" olarak ekleyin git remote rm originvegit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. Önerilen değişikliklerinizi yerel olarak yapın, ardından bunları github hesabınıza aktarın: git push -u origin master('-u origin master' yalnızca ilk kez gerekir; daha sonra yapın git push)
  3. Değişikliklerinizi gözden geçirip bunları birleştirmemi isteyen resmi Taffy sorun izleyicisine bir bilet gönderin. Lütfen repo bağlantınızı eklediğinizden ve neleri değiştirdiğinizi açıkladığınızdan emin olun.
  4. Git # 2

( Taffy belgelerine nasıl katkıda bulunabileceğinizden .)

Eğer ben olsaydım, ana depoda (yani, çatalladığınız) bir wiki güncellemesi öneren bir sorun yaratırdım. Sorunlar etkinleştirilmezse, aklıma gelen tek seçenek hakkında e-posta gönderilir.


@ Chi-YoungJeffreyLii Bu komutlar benim değil, alıntıladığım blog yazısından geliyor (alıntıyı altındaki kaynağı bağladım). Bunlar, Windows dahil Git ile Bash kabuğuna sahip bir UNIX veya GNU / Linux OS içeren herhangi bir platformda çalışması gereken komut satırı Git komutlarıdır.
Calrion

Nitpick: Başlangıç ​​uzaktan kaldırma / ekleme dizisi belki biraz (gereksiz) kıvrıktır, artı "çatal" teknik olarak başlangıç ​​noktası değildir, bu nedenle ad yanıltıcıdır. Yeni kişisel GitHub deposu (örn. "Kişisel" olarak adlandırılır) için yerel klona yalnızca ikinci bir uzaktan kumanda eklemenizi ve normal olarak ona aktarmayı öneririm. Bu şekilde, normalde başkalarının çalışmalarıyla senkronize etmek için gerçek kaynak deposundan da getirilebilir.
tne

5

Buna farklı bir yaklaşım izledim, bu da aynı içeriği hem ana repoya hem de wiki'ye itmek. Bu herkesin zevkine göre olmayacak, ancak Risk-First esas olarak ana repoda birkaç Jekyll sayfası olan bir wiki.

Bu, çekme talebi / çatal işleminin iyi çalıştığı anlamına gelir. Ancak, bir çekme isteğini birleştirdikten sonra, yerel repoma çekme ve sonra hem ana repoya hem de wiki'ye itme için ekstra adımı yapmalıyım.

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: git@github.com:risk-first/website.git
  Push  URL: git@github.com:risk-first/website.wiki.git
  Push  URL: git@github.com:risk-first/website.git
  HEAD branch: master

Bunu başarmak için, her iki depodaki taahhütleri birleştirerek aşağıdakileri birleştirdim:

İki Git deposunu nasıl birleştirirsiniz?

Ve sonra her iki depoya da böyle itin:

Git - Kodu iki uzaktan kumandaya gönderme

Umarım bu birine yardımcı olur.


FYI, bu yaklaşımın yanındayım - çok iyi çalıştı. Ancak, tamamen farklı nedenlerden ötürü, her şeyi Jekyll'e taşıdım, bu yüzden riskfirst artık böyle değil
Rob Moffat

5

Https://devonfw.com adresinde şu ana kadar sorun için en iyi çözümü bulduk :

  1. Belgelerinizi bir belge klasörü içindeki kodla birlikte git deposuna yerleştirin.
  2. Travis-ci yapınızı, wiki git'e uygulanan dönüştürmelerle bu belge klasöründeki tüm değişiklikleri aşamalandıran bir sihirle genişletin. Aşağıdaki son örnek bağlantıya bakın.
  3. Wiki'yi belgelerde salt okunur görünüm olarak düşünün. Lütfen github.com ile dokümantasyon klasöründeki dosyaları görüntüleyip doğrudan düzenleyebileceğinizi unutmayın. Böylece, tarayıcıdaki yazım hatalarını saniyeler içinde düzeltebilirsiniz (repo'da izinsiz PR olarak bile) - wiki üzerinden değil.
  4. Bir katılımcı çatalladığında, kodla birlikte belgelere de sahiptir. Bir PR'da hem değişiklik yapabilir hem de hepsi aynı süreçte incelenir, böylece Birleştirme Kodu ve Doc senkronize kalır. Hala kenar çubuğuyla viki belgelerini okumak için daha güzel UX var.

% 100 OSS olduğumuzdan, bu harika çözüme ulaşmak için yoğun çabalarımızı paylaşmayı seviyoruz. Örnek olarak bağlantılar:


2

Çekme isteği yapamazsınız, ancak bir sorun açabilir, wiki sayfanızın bağlantısını yapıştırabilir ve wiki sayfanızda wiki sayfalarıyla birleşmelerine izin verebilirsiniz.

Kısacası:

Onlar sadece wiki sayfa repo klonlamak, ( git clone YOUR_FORKED_REPO.wiki.git), tüm wiki taahhütleri büyük bir taahhüt squash, daha sonra bu büyük ezilmiş taahhüt repo kiraz seçin. Bu, tüm wiki değişikliklerinizi wiki'lerine getirir.

Tam talimatlar:

(Larry Botha'nın github özünden BURAYA KOPYALAN: https://gist.github.com/larrybotha/10650410 ):

---------- YUKARI GITHUB GIST'DEN KOPYA MACUNUN BAŞLADI ------------

Çatallı Github Repo'dan Wiki Değişikliklerini Birleştir

Bu, Roman İvanov tarafından Github Wiki'nin Bir Depodan Diğerine Değişikliklerin Nasıl Birleştirileceği'nden esinlenmiştir (veya temel olarak kopyalanmıştır) ve orijinal makalede bir şey olması gerektiğinde, bilgilerin burada güzel ve güvenli kalmasını sağlamaya hizmet eder.

terminoloji

OREPO : orijinal repo - sahibi tarafından oluşturulan veya sürdürülen repo

FREPO : henüz OREPO'da değil, muhtemelen wiki güncellemelerine sahip çatallı repo

Katkı

Çöktüğünüz bir repo wiki'sine katkıda bulunmak isterseniz, aşağıdakileri yapın:

  • depoyu çatalla
  • makinenize yalnızca wiki'yi klonlayın: $ g clone [FREPO].wiki.git
  • yerel çatallı wiki deposunda değişiklik yap
  • değişikliklerinizi GitHub'a aktarın

Yazara değişiklikleriniz olduğunu bildirmeye hazır olduğunuzda aşağıdakileri yapın:

  • OREPO'da bir sorun açın
  • birleştirme kolaylığı için wiki'nizin git deposuna doğrudan bir bağlantı sağlayın: yani [ FREPO ] .wiki.git

Değişiklikleri Birleştirme

OREPO'nun sahibi olarak , şimdi başka birinin FREPO'sunda wiki'nizde güncelleme olduğunu belirten bir mesaj aldınız .

Wiki değişiklikleri en son OREPO wiki'den çatallanmışsa , aşağıdakileri yapabilirsiniz:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git

# squashing all FREPO changes
$ git pull [FREPO].wiki.git master

$ git push origin master

Eğer OREPO wiki önde nerede olduğunu FREPO gelen çatallı, aşağıdakileri yapın:

$ git clone [OREPO].wiki.git
$ cd [OREPO].wiki.git
$ git fetch [FREPO] master:[FREPO-branch]
$ git checkout [FREPO-branch]

#checkout to last OREPO commit
$ git reset --hard [last-OREPO-commit-hash]

# do massive squash of all FREPO changes
$ git merge --squash HEAD@{1}
$ git commit -m "Wiki update from FREPO - [description]"
$ git checkout master

# cherry-pick newly squashed commit
$ git cherry-pick [OREPO-newly-squashed-commit]
$ git push

---------- YUKARI GITHUB GIST'DEN KOPYA MACUNUN SONU ------------


0

Tek sayfalık bir belgeye sahipseniz (aslında daha çok hoşuma gidiyor), README.MDwikinin içeriğini ele geçirip oraya koyabilirsiniz.

Sadece normal deponun bir parçası olarak izlenmeyecek, aynı zamanda ana sayfada da görüntülenecektir.

Hızlı bir referansla başlamak ve daha ayrıntılı açıklama / talimatlara girmek için yapılabilir, böylece normal kullanıcılar önce daha genel bilgileri vurur.

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.