เหตุใดผู้คนจึงแยกที่เก็บบน GitHub [ปิด]


110

ฉันสังเกตเห็นว่าบัญชีGitHubจำนวนมากมีที่เก็บซึ่งแยกจากบัญชีอื่นเท่านั้น นอกจากนี้คนที่ทำสิ่งนี้มักจะไม่ให้ความช่วยเหลือใด ๆ กับที่เก็บแยก

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


84
พวกเขาต้องการให้แน่ใจว่าพวกเขามีการสำรองข้อมูลที่มีเสถียรภาพหากเจ้าของโครงการลบ repos ของเขาและหายไป
ratchet freak

9
เพียงเพราะนั่นคือวิธีการร้องขอดึงทำงานใน GitHub (และเพราะคนเป็นบิตส้อมมีความสุขแล้วลืมเกี่ยวกับมันบางครั้งหรือละทิ้งความคิดโครงการของพวกเขาและลืมที่จะกำจัดของส้อม)
haylem

2
เพียงความคิดเห็นที่ฉันเข้าใจว่าพวกเขาใช้เป็น "การสำรองข้อมูล" ของรหัส แต่พวกเขาลืม (หรือไม่ทราบ) ว่าการปรับปรุงพื้นที่เก็บข้อมูลไม่ส่งผลกระทบต่อ "ส้อม" เมื่อพวกเขาควรจะทำทางแยกขวา (สำหรับการสำรองข้อมูล) และ "ติดดาว" พื้นที่เก็บข้อมูลที่ต้องรู้เมื่อต้องทำ "re-fork" กล่าวอีกนัยหนึ่งพวกเขาคิดว่า "fork" นั้นเกือบจะเหมือนกันกับ "Star" และไม่ทราบว่ามีโค้ดที่ล้าสมัย
Guilherme Nascimento

1
เพราะพวกเขาได้ยินมาว่าการมี Github นั้นเพียงพอที่จะได้รับการจ้างงานเมื่อเริ่มต้นร้อนแรง
ออกุสตุ

1
นี่คือโพสต์เกี่ยวกับอันตรายของการตีโดยไม่มีเหตุผลzbowling.github.io/blog/2011/11/25/github
gavenkoa

คำตอบ:


69

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

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


42
ตามแนวของเหตุผลที่ไม่ใช่ด้านเทคนิค: ฉันคลิกที่ปุ่ม 'แยก' หลายครั้งโดยหวังว่าจะได้เห็นว่าใครเป็นคนเก็บเงินซื้อคืน แต่พบว่าฉันได้แยก อ๊ะ! ไม่แน่ใจว่าคนอื่นทำแบบเดียวกันหรือไม่
gdw2

53
@gdw: ทำให้คุณร้องอุทาน "โอ้ส้อม!"
Ben Jackson

1
ผมจำได้ว่าครั้งแรกที่ผมได้เรียนรู้เกี่ยวกับคอมไพล์และ Github, ฉันได้บางฟอร์กเพียงเพราะคำแนะนำและแบบฝึกหัดดูเหมือนจะเสนอเป็นวิธีการรับสำเนาของคุณเองรหัสบนคอมพิวเตอร์ของคุณ
rmac

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

3
@ เจสซีก็เป็นเรื่องดีที่จะทำ แต่มักจะไม่จำเป็นในกรณีนี้ บริษัท อาจทำเพื่อรหัสที่พวกเขาพึ่งพาเพื่อให้แน่ใจว่าต้นฉบับไม่ได้หายไปทันที หากสิ่งที่คุณต้องการทำคือสร้างจากแหล่งที่มาโคลนจะง่ายกว่า
Karl Bielefeldt

101

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

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

ฉันคิดว่ามีหลายสาเหตุที่ทำให้ผู้คนแยกที่เก็บ แต่ไม่เปลี่ยน:

  • พวกเขาอาจแยกพื้นที่เก็บข้อมูลที่ดูดีเพียงแค่แยกมัน (เพราะมันง่าย (เพียงแค่คลิกเดียว)) และต้องการทำการเปลี่ยนแปลงในภายหลัง (จากนั้นอาจจะลืมมัน / ไม่มีเวลาทำ)
  • พวกเขาแยกที่เก็บเพื่อทำการเปลี่ยนแปลงแล้วค้นพบว่าการเปลี่ยนแปลงนั้นไม่จำเป็นและลืมที่จะลบที่เก็บของตัวเอง
  • พวกเขาอาจแยกที่เก็บเพราะหนึ่งในโครงการขึ้นอยู่กับที่เก็บอื่น ๆ (อาจจะผ่านทาง submodules) และพวกเขาต้องการการควบคุมทั้งหมดของพื้นที่เก็บข้อมูลที่ใช้เป็นการพึ่งพา (เจ้าของพื้นที่เก็บข้อมูลเดิมอาจตัดสินใจที่จะย้ายจาก github เพื่อ google code ฯลฯ )
  • พวกเขาอาจลืมที่จะผลักดันความมุ่งมั่น

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

มันเป็นกระบวนการง่ายๆเพียงขั้นตอนเดียวในการตั้งค่าสาขาการติดตามระยะไกล ใครก็ตามที่พยายามจะมีส่วนร่วมในที่เก็บ git นอก GitHub รู้ว่ามันน่าเบื่อ นอกจากนี้หากผู้เขียนต้นฉบับไปที่ AFK คุณสามารถติดตามกราฟการพัฒนาเพื่อค้นหาส้อมที่ยังคงพัฒนาอยู่ หวังว่ามันจะช่วยป้องกันไม่ให้ GitHub เสื่อมโทรมไปสู่ความสูญเปล่าของโครงการที่ตายแล้วเช่นเดียวกับ SourceForge
Evan Plaice

จะเกิดอะไรขึ้นถ้าคุณแยกโครงการ แต่ไม่มีการเปลี่ยนแปลง สิ่งนี้จะถือว่าผิดกฎหมายหรือไม่?
เจสซี

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

28

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


3
พวกเขาสามารถแก้ไขเพื่อส่งหมายเลขหรือรุ่นที่เผยแพร่ของแอปที่เผยแพร่
Roman M. Koss

26

จุดทั้งหมดของ Github คือ"การเข้ารหัสสังคม"

ส่วนตัวฉันแยกที่เก็บเมื่อ:

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

ตอนนี้ฉันได้ยินว่ามีคนสะสมแสตมป์และเปลือกหอย แต่ทำไมใครถึงต้องการเก็บที่เก็บ

ทำไมจะไม่ล่ะ?

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

ตอนนี้เริ่มฟอร์ก


9
+1 สำหรับ "ทำไมไม่" มาตรา.
Llepwryd

2 เซ็นต์เพิ่มเติมของฉันใน "ทำไมไม่?" ส่วน: นิสัยของฉันมักจะทำ "git push" เสมอหลังจากที่ฉันทำงานเกี่ยวกับฟีเจอร์เสร็จแล้ว มันมีความรู้สึกที่น่าพอใจของ QED สำหรับฉัน (ฉันไม่ได้รับเมื่อเขียนชื่อรีโมทและชื่อสาขา) ดังนั้นเมื่อใดก็ตามที่มีโอกาสแม้แต่น้อยที่สุดที่ฉันอาจต้องการเปลี่ยนแปลง repo ฉันต้องการแยกมันแทนการเปลี่ยนค่าเริ่มต้น "แหล่งกำเนิด" repo ในภายหลัง
yoniLavi

1
ฉันคิดว่า "ทำไมไม่" ส่วนอธิบายว่า "ดาว" ทำงานอย่างไร ...
TWiStErRob

2
ทำไมไม่ให้ดาวเป็นดวงเพื่อบันทึกไว้ดูในภายหลัง
เพื่อน

2
เมื่อโครงการน่าสนใจฉันจะใช้ดาว ฉันเห็นด้วยแม้ว่ากับส่วนที่เหลือ
Roman M. Koss

1

ฉันแยก repos มากมายที่ฉันอาจต้องการใช้รหัสหรือถ้าเป็นโครงการที่ฉันสนใจเมื่อฉันต้องการกลับมาและได้ดูรหัสอีกครั้งในภายหลัง ที่เก็บ ฉันไม่ต้อง google หรือกระวนกระวายใจพยายามจำชื่อที่ถูกต้องหรือคิดว่า "ฉันเห็น repo เกี่ยวกับฟูอีกครั้งที่ไหน ถ้ามันเป็นหนึ่งใน repos ของฉันมันง่ายที่จะได้รับการเตือนจากสิ่งเหล่านี้


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