จะดึงคำขอหน้า wiki บน GitHub ได้อย่างไร


160

ฉันเห็นหน้าวิกิบนGitHubที่ไม่เปิดให้แก้ไข จากนั้นฉันแยกโครงการแก้ไขบน "จุดสิ้นสุดของฉัน" และพยายามทำการร้องขอการดึง ปรากฎว่าวิกิไม่ได้อยู่ในโครงการและไม่มีวิธีใดที่จะยอมรับการเปลี่ยนแปลง

นอกเหนือจากการส่งอีเมลมีวิธีดำเนินการต่อหรือไม่หากฉันต้องการแนะนำการเปลี่ยนแปลงของวิกิในกรณีนี้

ณ จุดนี้ฉันพบสิ่งที่ดูเหมือนเป็นทางเลือกภายใต้ "คำถามที่มีชื่อคล้ายกัน" แต่ฉันยังไม่สามารถดึงคำขอได้ดังนั้นฉันจึงไม่แน่ใจว่า submodules เป็นวิธีที่ดีสำหรับจุดประสงค์นี้ ตอนนี้ฉันเห็นว่าฉันสามารถแยกสาขาออกมาได้ ... อย่างนี้เป็นวิธีไปหรือไม่


5
รายงานเมื่อgithub.com/isaacs/github/issues/846
Martin Monperrus

ฉันรู้ว่าฉันมางานปาร์ตี้สาย🎉 แต่ฉันคิดว่าการใช้.wikirepo git เป็น submodule ของ repo โครงการหลักดูเหมือนจะเป็นวิธีที่ดีที่สุดในสถานการณ์นี้
ipatch

วิธีแก้ปัญหาเพื่อเปิดใช้งานคำขอดึงบน GitHub wikis: growingwiththeweb.com 2016/07/30
Vadzim

คำตอบ:


120

GitHub ไม่รองรับคำขอดึงสำหรับที่เก็บ wikiเพียงที่เก็บหลัก (นี่เป็นความอัปยศเล็กน้อย IMO แต่ฉันเข้าใจได้)

ต่อไปนี้เป็นวิธีที่น่าสนใจหนึ่งในโครงการที่จะจัดการอัพเดตชุมชนกับวิกิของตนในขณะที่ยังคงควบคุมอย่างเข้มงวดสำหรับซอร์สโค้ด:

เวิร์กโฟลว์ที่ฉันเสนอคือ:

  1. สร้างวิกิ Taffy แยกด้วยตนเองในบัญชี Github ของคุณ:
    • สร้างที่เก็บใหม่ในบัญชี Github ของคุณ ลองเรียกมันว่า "Taffy-Wiki"
    • คัดลอก Tiki wiki repo ไปยังเครื่องท้องถิ่นของคุณที่อื่น: git clone git@github.com:atuttle/Taffy.wiki.git
    • ลบรีโมต "Origin" ดั้งเดิมและเพิ่ม repit Github ของคุณเป็น "Origin" ใหม่git remote rm originและgit remote add origin git@github.com:<YOUR_USERNAME>/Taffy-Wiki.git
  2. ทำการเปลี่ยนแปลงที่เสนอของคุณในพื้นที่จากนั้นส่งไปยังบัญชี GitHub ของคุณ: git push -u origin master('-u Origin master' ต้องใช้ครั้งแรกเท่านั้นหลังจากนั้นเพียงแค่ทำgit push )
  3. ส่งตั๋วไปยังผู้ติดตามปัญหา Taffy อย่างเป็นทางการขอให้ฉันตรวจสอบการเปลี่ยนแปลงของคุณ โปรดรวมลิงก์ไปยัง repo ของคุณและอธิบายสิ่งที่คุณเปลี่ยนแปลง
  4. ไปที่ # 2

(จาก วิธีที่คุณสามารถมีส่วนร่วมในเอกสาร Taffy )

ถ้าเป็นฉันฉันจะสร้างปัญหาในที่เก็บหลัก (นั่นคือที่คุณแยก) แนะนำการอัปเดตของวิกิ หากไม่ได้เปิดใช้งานปัญหาแสดงว่าอีเมลเกี่ยวกับตัวเลือกอื่นที่ฉันนึกถึง


@ Chi-YoungJeffreyLii คำสั่งเหล่านั้นไม่ใช่ของฉัน แต่มาจากโพสต์บล็อกที่ฉันยกมา (ฉันเชื่อมโยงแหล่งที่มาด้านล่างข้อความอ้างอิง) พวกเขาเป็นคำสั่งบรรทัดคำสั่ง Git ซึ่งควรทำงานบนแพลตฟอร์มใด ๆ กับ Git รวมถึง Windows และรวมถึง UNIX หรือ GNU / Linux OS ด้วย Bash shell
Calrion

Nitpick: ลำดับการลบ / เพิ่มรีโมตต้นทางอาจเป็นเรื่องที่ซับซ้อน (โดยไม่จำเป็น) รวมถึง "fork" ไม่ใช่เทคนิคต้นทางดังนั้นชื่อจึงทำให้เข้าใจผิด ฉันแนะนำให้เพิ่มรีโมตตัวที่สองบนโคลนโลคัลสำหรับที่เก็บ GitHub ส่วนบุคคลใหม่ (เช่นชื่อ "ส่วนบุคคล") และกดไปตามปกติ ด้วยวิธีนี้เรายังสามารถดึงข้อมูลจากแหล่งเก็บข้อมูลจริงตามปกติเพื่อซิงโครไนซ์กับงานของผู้อื่น
tne

5

ฉันได้นำวิธีการที่แตกต่างกันซึ่งจะผลักดันเนื้อหาเดียวกันในทั้ง repo หลักและ wiki นี่ไม่ใช่รสนิยมของทุกคน แต่ความเสี่ยงแรกเป็นวิกิส่วนใหญ่ที่มีเพจ Jekyll สองสามหน้าใน repo หลัก

ซึ่งหมายความว่ากระบวนการดึงคำขอ / ส้อมทำงานได้ดี อย่างไรก็ตามหลังจากรวมคำขอดึงฉันต้องทำขั้นตอนพิเศษในการดึงไปยัง repo ท้องถิ่นของฉันแล้วผลักดันไปยังทั้ง repo หลักและ wiki ซึ่ง git รองรับได้ดีกับ URL ต้นทางหลายรายการ:

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

เพื่อให้บรรลุเป้าหมายนี้ฉันได้รวมข้อผูกพันจาก repos ทั้งสองที่ติดตามสิ่งนี้:

คุณจะรวมที่เก็บ Git สองแห่งได้อย่างไร

จากนั้นกดไปที่ repos ทั้งสองดังนี้:

Git - การกดรหัสไปที่รีโมทสองเครื่อง

หวังว่านี่จะช่วยใครซักคน


FYI ฉันยืนตามแนวทางนี้ - มันค่อนข้างดี อย่างไรก็ตามด้วยเหตุผลที่แตกต่างกันโดยสิ้นเชิงฉันก็เลยย้ายโลทไปสู่ ​​Jekyll ดังนั้นมันจึงไม่ใช่ความเสี่ยงอีกต่อไปแล้ว
Rob Moffat

5

เราพบทางออกที่ดีที่สุดสำหรับปัญหาแล้วในhttps://devonfw.com :

  1. ใส่เอกสารของคุณลงในที่เก็บ git พร้อมกับรหัสที่อยู่ในโฟลเดอร์เอกสาร
  2. ขยาย travis-ci build ของคุณด้วยเวทมนต์ที่จะทำการเปลี่ยนแปลงทั้งหมดจากโฟลเดอร์เอกสารนั้นด้วยการแปลงที่ใช้กับวิกิ git ดูลิงค์ตัวอย่างล่าสุดด้านล่าง
  3. พิจารณาวิกิว่าเป็นมุมมองแบบอ่านอย่างเดียวในเอกสารประกอบ โปรดทราบว่าด้วย github.com คุณยังสามารถดูและแก้ไขไฟล์ในโฟลเดอร์เอกสารได้โดยตรง ดังนั้นคุณยังคงสามารถแก้ไขความผิดพลาดภายในเบราว์เซอร์ได้ภายในไม่กี่วินาที (แม้จะเป็น PR โดยไม่ได้รับอนุญาตจาก repo) - ไม่ต้องผ่าน wiki
  4. เมื่อผู้มีส่วนร่วมส้อมเขาก็มีเอกสารประกอบที่มีรหัส เขาสามารถเปลี่ยนได้ทั้งใน PR เดียวและทั้งหมดจะได้รับการตรวจสอบในกระบวนการเดียวกันดังนั้นหลังจากผสาน Code และ Doc ยังคงซิงค์กันอยู่ คุณยังมี nicer UX สำหรับอ่านเอกสารใน wiki ที่มี sidebar เป็นต้น

เนื่องจากเราเป็น OSS 100% เราชอบที่จะแบ่งปันความพยายามอย่างหนักของเราในการแก้ปัญหาที่ยอดเยี่ยมนี้ นี่คือลิงค์เป็นตัวอย่าง:


2

คุณไม่สามารถดึงคำขอได้ แต่คุณสามารถเปิดปัญหาวางลิงค์ไปยังหน้า wiki ของคุณและให้พวกเขารวมในหน้า wiki ของคุณไปยังหน้า wiki ของพวกเขา

ในระยะสั้น:

พวกเขาเพียงแค่ต้องโคลน repo หน้า wiki ของคุณ (git clone YOUR_FORKED_REPO.wiki.git ) สควอช wiki ทั้งหมดของคุณให้คำมั่นสัญญาครั้งใหญ่จากนั้นให้เชอร์รี่เลือก squashed อันใหญ่นี้ของพวกเขา นั่นจะนำวิกิทั้งหมดของคุณไปเปลี่ยนเป็นวิกิของพวกเขา

คำแนะนำแบบเต็ม:

(คัดลอกมาจาก Larry Botha github gist ที่นี่: https://gist.github.com/larrybotha/10650410 ):

---------- จุดเริ่มต้นของการคัดลอกวางจาก GITHUB GIST ข้างต้น ------------

ผสานการเปลี่ยนแปลงของวิกิจากตัวแทน Github ที่แยกออกมา

นี่คือแรงบันดาลใจ (หรือคัดลอกโดยทั่วไป) จากHow To ผสาน Github Wiki การเปลี่ยนแปลงจากที่เก็บหนึ่งไปยังอีกโดย Roman Ivanov และทำหน้าที่เพื่อให้แน่ใจว่าสิ่งที่เกิดขึ้นกับบทความต้นฉบับข้อมูลยังคงดีและปลอดภัยที่นี่

คำศัพท์

OREPO : repo ดั้งเดิม - repo ที่สร้างหรือดูแลโดยเจ้าของ

FREPO : repo ที่มีการแยกซึ่งน่าจะมีการอัพเดตเป็น wiki แต่ยังไม่ได้อยู่ในOREPO

การบริจาค

หากคุณต้องการมีส่วนร่วมกับวิกิของ repo ที่คุณแยกออกมาให้ทำดังนี้:

  • แยก repo
  • คัดลอกเฉพาะ wiki กับเครื่องของคุณ: $ g clone [FREPO].wiki.git
  • ทำการเปลี่ยนแปลงวิกิพีเดียในท้องถิ่นของคุณ
  • ผลักดันการเปลี่ยนแปลงของคุณไปยัง GitHub

เมื่อคุณพร้อมที่จะให้ผู้เขียนทราบว่าคุณมีการเปลี่ยนแปลงให้ทำดังต่อไปนี้:

  • เปิดปัญหาในOREPO
  • ระบุลิงก์โดยตรงไปยัง repo คอมไพล์ของวิกิของคุณเพื่อความสะดวกในการผสาน: เช่น [ FREPO ] .wiki.git

การผสานการเปลี่ยนแปลง

ในฐานะเจ้าของOREPOตอนนี้คุณได้รับข้อความว่ามีการอัพเดต wiki ของคุณในFREPOของบุคคลอื่น FREPO

หากการเปลี่ยนแปลงของวิกินั้นแยกจากวิกิOREPOล่าสุดคุณสามารถทำสิ่งต่อไปนี้:

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

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

$ git push origin master

หากOREPO wiki อยู่ข้างหน้าของที่FREPOแยกจากกันให้ทำดังนี้:

$ 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

---------- จุดสิ้นสุดของการคัดลอกวางจาก GITHUB GIST ข้างต้น ------------


0

หากคุณตกลงที่จะมีเอกสารหน้ายาวหนึ่งหน้า (ฉันชอบมันมากกว่านี้) คุณสามารถจี้README.MDและวางเนื้อหาของวิกินั้นได้

ไม่เพียง แต่มันจะถูกติดตามเป็นส่วนหนึ่งของพื้นที่เก็บข้อมูลปกติก็จะถูกแสดงในหน้าแรก

มันสามารถเริ่มต้นด้วยการอ้างอิงอย่างรวดเร็วและจากนั้นเข้าไปดูคำอธิบาย / คำแนะนำโดยละเอียดเพื่อให้ผู้ใช้ทั่วไปจะได้รับข้อมูลทั่วไปมากขึ้นก่อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.