Bagaimana cara menarik permintaan halaman wiki di GitHub?

160

Saya melihat halaman wiki di GitHub yang tidak terbuka untuk diedit. Kemudian saya memotong proyek, mengeditnya di "akhir saya" dan mencoba melakukan permintaan tarik. Ternyata, wiki tidak ada dalam proyek, dan tidak ada cara untuk melakukan perubahan padanya.

Selain e-mail, apakah ada cara untuk melanjutkan jika saya ingin menyarankan perubahan pada wiki dalam kasus ini?

Pada titik ini saya menemukan apa yang tampak seperti alternatif di bawah "Pertanyaan dengan judul yang sama", tetapi saya belum bisa melakukan permintaan tarik dengannya, dan jadi saya tidak yakin submodul adalah cara yang baik untuk tujuan ini. Saya sekarang melihat saya mungkin bisa menabraknya entah bagaimana ... Jadi apakah ini cara untuk pergi?

cregox
sumber
5
Dilaporkan pada github.com/isaacs/github/issues/846
Martin Monperrus
Saya tahu saya terlambat ke pesta 🎉 untuk yang satu ini, tapi saya pikir menggunakan .wikirepo git sebagai submodule dari repo proyek utama sepertinya pendekatan terbaik untuk situasi ini.
ipatch
Penanganan untuk mengaktifkan permintaan tarik pada wiki GitHub: tumbuhwiththeweb.com/2016/07/…
Vadzim

Jawaban:

120

GitHub tidak mendukung permintaan tarik untuk repositori wiki , hanya repositori utama (ini sedikit memalukan, IMO, tapi saya bisa memahaminya).

Berikut ini cara menarik satu proyek mengelola pembaruan komunitas untuk wiki mereka, sambil tetap menjaga kontrol ketat, seperti untuk kode sumber:

Alur kerja yang saya usulkan adalah ini:

  1. Buat garpu wiki Taffy secara manual di akun Github Anda:
    • Buat repositori baru di akun github Anda. Sebut saja "Taffy-Wiki".
    • Kloning repo wiki Taffy ke mesin lokal Anda di suatu tempat: git clone [email protected]:atuttle/Taffy.wiki.git
    • Hapus remote "asal" asli dan tambahkan repo github Anda sebagai "asal" baru git remote rm origindangit remote add origin [email protected]:<YOUR_USERNAME>/Taffy-Wiki.git
  2. Buat perubahan yang Anda usulkan secara lokal, lalu dorong ke akun github Anda: git push -u origin master('-u master asal' hanya diperlukan pertama kali; setelah itu lakukan saja git push)
  3. Kirim tiket ke pelacak masalah Taffy resmi yang meminta saya untuk meninjau perubahan Anda dan menggabungkannya. Pastikan untuk menyertakan tautan ke repo Anda dan jelaskan apa yang telah Anda ubah.
  4. Goto # 2

(Dari Bagaimana Anda dapat berkontribusi pada dokumentasi Taffy .)

Jika itu saya, saya akan membuat masalah di repositori utama (yaitu, yang Anda bercabang) menyarankan pembaruan ke wiki. Jika masalah tidak diaktifkan, maka email tentang satu-satunya pilihan lain yang bisa saya pikirkan.

Calrion
sumber
@ Chi-YoungJeffreyLii Perintah-perintah itu bukan milik saya tetapi berasal dari posting blog yang saya kutip (saya menautkan sumber di bawah kutipan). Itu adalah perintah-perintah Git, yang harus bekerja pada platform apa pun dengan Git, termasuk Windows, dan termasuk OS UNIX atau GNU / Linux dengan Bash shell.
Calrion
Nitpick: Urutan remote remove / add sequence mungkin sedikit (tidak perlu) berbelit-belit, ditambah "garpu" secara teknis bukan asal sehingga namanya menyesatkan. Saya menyarankan hanya menambahkan remote kedua pada klon lokal untuk repositori GitHub pribadi baru (mis. Bernama "pribadi") dan dorong ke sana secara normal. Dengan cara itu seseorang juga masih dapat mengambil dari repositori asal asli secara normal untuk menyinkronkan dengan pekerjaan orang lain.
mentega
5

Saya telah mengambil pendekatan yang berbeda untuk ini, yaitu untuk mendorong konten yang persis sama ke repo utama dan wiki. Ini tidak sesuai dengan selera semua orang, tetapi Risk-First terutama adalah wiki dengan beberapa halaman Jekyll di repo utama.

Ini berarti proses tarik permintaan / garpu bekerja dengan baik. Namun, setelah menggabungkan permintaan tarik, saya harus melakukan langkah tambahan menarik ke repo lokal saya dan kemudian mendorong ke repo utama dan wiki, yang git mendukung denda dengan beberapa URL asal:

localhost:website robmoffat$ git remote show origin
* remote origin
  Fetch URL: [email protected]:risk-first/website.git
  Push  URL: [email protected]:risk-first/website.wiki.git
  Push  URL: [email protected]:risk-first/website.git
  HEAD branch: master

Untuk mencapai ini, saya menggabungkan komit dari kedua repo berikut ini:

Bagaimana Anda menggabungkan dua repositori Git?

Dan kemudian dorong ke kedua repo seperti ini:

Git - Mendorong kode ke dua remote

Semoga ini bisa membantu seseorang.

Rob Moffat
sumber
FYI, saya mendukung pendekatan ini - itu berhasil dengan cukup baik. Namun, untuk alasan yang sangat berbeda, saya akhirnya bermigrasi ke Jekyll, jadi ini bukan cara kerja risiko pertama
Rob Moffat
5

Kami telah menemukan solusi terbaik untuk masalah sejauh ini di https://devonfw.com :

  1. Masukkan dokumentasi Anda ke dalam repositori git bersama dengan kode di dalam folder dokumentasi.
  2. Perluas travis-ci build Anda dengan beberapa magic yang mengatur semua perubahan dari folder dokumentasi tersebut dengan transformasi yang diterapkan pada wiki git. Lihat tautan contoh terakhir di bawah ini.
  3. Pertimbangkan wiki sebagai tampilan hanya baca pada dokumentasi. Harap dicatat bahwa dengan github.com Anda masih dapat melihat dan langsung mengedit file di folder dokumentasi. Jadi Anda masih dapat memperbaiki kesalahan ketik dalam browser dalam hitungan detik (bahkan seperti PR tanpa izin pada repo) - hanya saja tidak melalui wiki.
  4. Ketika seorang kontributor fork, ia juga memiliki dokumentasi dengan kode tersebut. Dia dapat mengubah keduanya dalam satu PR dan semua ditinjau dalam proses yang sama sehingga setelah menggabungkan Kode dan Doc tetap sinkron. Masih ada UX yang lebih bagus untuk membaca dokumentasi di wiki dengan sidebar, dll.

Karena kami 100% OSS, kami senang berbagi upaya keras kami untuk mencapai solusi hebat ini. Inilah tautannya sebagai contoh:

Jorg
sumber
2

Anda tidak dapat melakukan permintaan tarik, tetapi Anda dapat membuka masalah, menempelkan tautan ke halaman wiki Anda, dan membiarkan mereka bergabung di halaman wiki Anda ke halaman wiki mereka.

Pendeknya:

Mereka hanya perlu mengkloning repo halaman wiki Anda, ( git clone YOUR_FORKED_REPO.wiki.git), squash semua wiki Anda komit menjadi satu komit besar, lalu pilih ceri komit tergencet ini ke repo mereka. Itu akan membawa semua perubahan wiki Anda ke wiki mereka.

Instruksi lengkap:

(DITIPU DARI inti github Larry Botha DI SINI: https://gist.github.com/larrybotha/10650410 ):

---------- MULAI COPY-PASTE DARI GITHUB GIST DI ATAS ------------

Gabungkan Perubahan Wiki Dari Repo Github yang Dipaku

Ini terinspirasi (atau pada dasarnya disalin) dari How To Merge Github Wiki Berubah Dari Satu Repositori ke Yang Lain , oleh Roman Ivanov, dan berfungsi untuk memastikan bahwa jika sesuatu terjadi pada artikel asli, informasinya tetap bagus dan aman di sini.

Terminologi

OREPO : repo asli - repo yang dibuat atau dikelola oleh pemilik

FREPO : repo bercabang yang mungkin memiliki pembaruan untuk wiki-nya, belum pada OREPO

Berkontribusi

Jika Anda ingin berkontribusi pada wiki dari repo yang telah Anda garpu, lakukan hal berikut:

  • garpu repo
  • hanya mengkloning wiki ke mesin Anda: $ g clone [FREPO].wiki.git
  • buat perubahan pada repo wiki bercabang lokal Anda
  • dorong perubahan Anda ke GitHub

Setelah Anda siap memberi tahu penulis bahwa Anda memiliki perubahan, lakukan hal berikut:

  • buka masalah di OREPO
  • memberikan tautan langsung ke git repo wiki Anda untuk kemudahan penggabungan: yaitu [ FREPO ] .wiki.git

Menggabungkan Perubahan

Sebagai pemilik OREPO , Anda sekarang telah menerima pesan bahwa ada pembaruan untuk wiki Anda di FREPO orang lain .

Jika perubahan wiki diambil dari wiki OREPO terbaru , Anda dapat melakukan hal berikut:

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

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

$ git push origin master

Jika OREPO wiki berada di depan dari mana FREPO bercabang, lakukan hal berikut:

$ 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

---------- AKHIR COPY-PASTE DARI GITHUB GIST DI ATAS ------------

Gabriel Staples
sumber
0

Jika Anda boleh memiliki satu dokumen sepanjang satu halaman (saya sebenarnya lebih menyukainya), Anda dapat membajak README.MDdan meletakkan konten wiki di sana.

Tidak hanya akan dilacak sebagai bagian dari repositori normal, tetapi juga akan ditampilkan di halaman beranda.

Hal ini dapat dilakukan untuk memulai dengan referensi cepat dan kemudian masuk ke deskripsi / instruksi yang lebih rinci, sehingga pengguna biasa akan mendapatkan informasi generik yang lebih dulu.

Igor Stoppa
sumber