GitHub: แยก "โครงการของตัวเอง"


118

ฉันพบโครงการ GitHub ที่ดีซึ่งฉันขยายไปมาก ฉันเชื่อว่าการเปลี่ยนแปลงของฉันเป็นสิ่งที่ดีเพราะการเปลี่ยนแปลงกำลังได้ผล แต่ดูเหมือนว่าผู้เขียนต้นฉบับไม่มีเวลาตรวจสอบการเปลี่ยนแปลงเหล่านี้และรวมไว้ ในความเป็นจริงเป็นไปได้ว่าคุณสมบัติที่ฉันต้องการและนำไปใช้นั้นไม่ได้อยู่ในวิสัยทัศน์ของผู้เขียนต้นฉบับและเราก็มุ่งเป้าไปที่เป้าหมายที่แตกต่างกัน ฉันไม่รู้เพราะฉันไม่เคยได้รับคำตอบจากเขา

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

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

ฉันจะทำสิ่งนี้ให้สำเร็จและทำให้ส้อมของฉันเป็นโครงการที่สมบูรณ์ได้อย่างไร


ฉันสับสนบางทีสิ่งต่าง ๆ อาจเปลี่ยนไปตั้งแต่ปี 2014 แต่โครงการ TightBlog ของฉันถูกระบุว่าเป็นทางแยกของ Apache Roller ที่มุมบนซ้าย: github.com/gmazza/tightblogแต่ฉันได้รับเครดิตเต็มจำนวนสำหรับปัญหาทั้งหมดของฉัน , PR's ฯลฯ แม้ว่าจะไม่มีงานใดที่ใช้กับโปรเจ็กต์หลักของ Apache Roller แต่ใช้กับทางแยกของฉัน: ( github.com/gmazza?tab=overview&period=monthly ) ฉันไม่แน่ใจว่าจะได้อะไรจากการทำส้อมเป็นโครงการแบบสแตนด์อโลนอีกต่อไป
Glen Mazza

คำตอบ:


75

ในการถอดแยกและทำให้มันกลายเป็นพื้นที่เก็บข้อมูลแบบสแตนด์อโลนบน GitHub ติดต่อสนับสนุน GitHub

https://help.github.com/articles/why-are-my-contributions-not-showing-up-on-my-profile/#commit-was-made-in-a-fork


9
นอกจากนี้การทำเช่นนี้จะช่วยให้ผู้ที่ชื่นชอบการดูดาวและเครือข่ายของส้อม ไม่เหมือนกับการสร้าง repo ใหม่ตั้งแต่ต้น
Johnco

1
เป็นที่น่าสังเกตว่า GitHub Support ให้ทางเลือกแก่ฉันในการจัดเรียงส้อมเด็กหรือเก็บไว้กับที่เก็บของฉันเอง
gmarmstrong

41

เพื่อที่จะทำเช่นนี้คุณจำเป็นต้องทำซ้ำพื้นที่เก็บข้อมูล เวอร์ชันสั้นคือ:

  1. สร้างที่เก็บใหม่บน GitHub
  2. โคลนที่เก็บแยกที่คุณต้องการแยกออกจากพาเรนต์
  3. พุชสาขาทั้งหมดในโคลนนี้ไปยังที่เก็บใหม่ของคุณ

หากคุณต้องการให้ที่เก็บของคุณยังคงมีชื่อเดิมคุณสามารถโคลน repo ของคุณลบใน GitHub สร้างโปรเจ็กต์ใหม่ด้วยชื่อเดียวกันและพุชทุกอย่าง
Rory O'Kane

12
ดูเหมือนว่าคำขอดึง GitHub จะสามารถใช้ได้กับ GitHub ส้อมของโครงการเท่านั้น ดังนั้นหากคุณทำซ้ำที่เก็บของคุณคุณจะไม่สามารถทำการร้องขอการดึงจากที่เก็บใหม่ได้ และถ้าคุณลบและแทนที่ที่เก็บเก่าของคุณคำขอดึงที่มีอยู่ทั้งหมดของคุณอาจถูกปิดเนื่องจาก GitHub จะคิดว่าโค้ดถูกลบไปแล้วและคุณจะไม่สามารถสร้างคำร้องขอดึงใหม่ได้
Rory O'Kane

9
การลงคะแนนเนื่องจากอาจทำให้ผู้คนเข้าใจผิดว่าทำสิ่งที่ไม่จำเป็น คำตอบของ Oleh ควรได้รับการยอมรับแทน: วิธีที่จะไปคือติดต่อฝ่ายสนับสนุนของ GitHub ใช้เวลาน้อยกว่าหนึ่งชั่วโมงในการแปลงส้อมของฉันเป็น repo แบบสแตนด์อโลน
Georgii Ivankin

5

ง่ายสุด ๆ :

  1. โคลน repo ที่ไหนสักแห่ง: git clone git@github.com:USERNAME/REPOSITORY.git(ตรวจสอบให้แน่ใจอีกครั้งว่าคุณได้โคลน)
  2. ลบ repo ใน GitHub (การตั้งค่า> ตัวเลือก> ลบที่เก็บนี้)
  3. สร้าง repo เปล่าใหม่ใน GitHub
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(ถ้าคุณใช้ชื่อเดียวกันสำหรับ repo แล้วNEW_REPOSITORY== REPOSITORY👍🏻)
  5. git push
  6. 🙌🏻

(ฉันใช้ ssh แต่ถ้าคุณใช้ https github urls ของคุณจะมีลักษณะเช่นนี้https://github.com/USERNAME/REPOSITORY.git)


1

ก่อนอื่นคุณควรตรวจสอบว่าใบอนุญาตอนุญาตให้คุณทำได้หรือไม่โดยทั่วไปการพูด Open Source บังคับให้คุณทำเช่นนั้นเพราะทั้งหมดนี้เกี่ยวกับวิวัฒนาการของซอฟต์แวร์โดยไม่ต้องใช้เครือข่าย ถ้าเป็นเช่นนั้นให้สร้าง repo ใหม่ อย่าลืมให้เครดิตผู้เขียนต้นฉบับและเริ่มโครงการของคุณ


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

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

ผู้เขียนควรสร้างซอฟต์แวร์ฟรีให้กับโครงการ แต่ถ้าไม่มี (ตัวอย่างเช่นหากไม่มีใบอนุญาต) แสดงว่าโครงการไม่ฟรี: stackoverflow.com/a/16934573/6791398
gmarmstrong
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.