ทำไมทุกคนใช้คอมไพล์ในลักษณะรวมศูนย์?
เราไม่เคยเจอกันทำไมคุณถึงพูดว่าทุกคน? ;)
ประการที่สองมีคุณสมบัติอื่น ๆ เพิ่มเติมที่คุณพบใน Git แต่ไม่ได้อยู่ใน CVS หรือ SVN บางทีมันอาจจะเป็นเพียงแค่คุณสมมติว่านี้จะต้องเป็นคุณสมบัติเฉพาะสำหรับทุกคน
แน่นอนว่าหลายคนอาจใช้งานแบบรวมศูนย์เช่น CVS หรือ SVN แต่อย่าลืมคุณสมบัติอื่น ๆ ที่มาพร้อมกับ VCS แบบกระจายโดยเนื้อแท้: สำเนาทั้งหมดมี "สมบูรณ์" มากขึ้นหรือน้อยลง (สาขาทั้งหมดและประวัติทั้งหมดมีให้บริการ) และสาขาทั้งหมดสามารถเช็คเอาท์ได้โดยไม่ต้องเชื่อมต่อกับเซิร์ฟเวอร์
ฉันคิดว่านี่เป็นคุณสมบัติอื่นที่ไม่ควรลืม
ในขณะที่คุณไม่สามารถทำได้โดยไม่ต้องใช้ CVS และ SVN นอกกรอบ Git สามารถใช้งานแบบรวมศูนย์เหมือนที่เคยเป็นมาโดยไม่มีปัญหาใด ๆ
ดังนั้นฉันจึงสามารถคอมมิชชันการเปลี่ยนแปลงของฉันบางทีสควอชกำลังอยู่ระหว่างดำเนินการคอมมิชชันแล้วดึงและรีบูตงานของฉันไปยังสาขาการพัฒนาหลัก
คุณสมบัติอื่น ๆ ที่มาพร้อมกับ Git:
- เซ็นสัญญาเข้ารหัส
- การรีบูต (การสั่งซื้อใหม่และการมอบหมายสควอชการแก้ไขคอมมิทไม่ใช่เฉพาะข้อความ)
- เชอร์รี่เก็บ
- ตัดแบ่งประวัติ
- สาขาท้องถิ่นและการเปลี่ยนแปลงที่สำคัญ (เรียกว่า "การเก็บเข้าลิ้นชัก" ใน Wikipedia)
โปรดดูตารางทั้งสามนี้ในWikipedia - การเปรียบเทียบซอฟต์แวร์ควบคุมเวอร์ชัน :
ดังนั้นอีกครั้งบางทีลักษณะการกระจายอำนาจไม่ได้เป็นเพียงคุณสมบัติที่ทำให้ผู้คนใช้งาน
- ทำไมคนไม่ใช้เวิร์กโฟลว์แบบกระจายสำหรับ Git ในทางปฏิบัติ
ทุกคนที่มีส่วนร่วมหรือเป็นเจ้าภาพโครงการที่ใหญ่กว่าใน Bitbucked, GitHub ฯลฯ จะทำสิ่งนั้นอย่างยอดเยี่ยม ผู้ดูแลรักษาพื้นที่เก็บข้อมูล "main" ซึ่งเป็นโคลนนิ่งของผู้บริจาคและส่งคำขอดึง
ใน บริษัท แม้จะมีโครงการขนาดเล็กหรือทีมงานเวิร์กโฟลว์แบบกระจายเป็นตัวเลือกเมื่อพวกเขาใช้โมดูลภายนอกและไม่ต้องการให้บุคคลภายนอกแก้ไขสาขาการพัฒนาอันศักดิ์สิทธิ์โดยไม่ต้องตรวจสอบการเปลี่ยนแปลงก่อนหน้านี้
- ความสามารถในการทำงานในลักษณะกระจายนั้นสำคัญต่อการควบคุมเวอร์ชันที่ทันสมัย ...
เช่นเคย: ขึ้นอยู่กับข้อกำหนด
ใช้ VCS แบบกระจายอำนาจหากมีประเด็นใดที่เกี่ยวข้อง:
- ต้องการคอมมิชชันหรือนำทางประวัติออฟไลน์ (เช่นจบ submodule ในกระท่อมบนภูเขาในช่วงวันหยุด)
- จัดเตรียม repos ส่วนกลาง แต่ต้องการแยกพื้นที่เก็บข้อมูล "ที่แท้จริง" ออกจากกันเพื่อตรวจสอบการเปลี่ยนแปลง (เช่นสำหรับโครงการขนาดใหญ่หรือทีมที่แจกจ่าย)
- ต้องการจัดทำ (สำเนา) ทั้งประวัติศาสตร์และสาขาเป็นครั้งคราวในขณะที่ป้องกันการเข้าถึงโดยตรงไปยัง repo กลาง (คล้ายกับที่สอง)
- ต้องการรุ่นสิ่งโดยไม่ต้องเก็บที่ระยะไกลหรือตั้งค่าพื้นที่เก็บข้อมูลเฉพาะ (โดยเฉพาะกับ Git เพียงแค่
git init .
จะเพียงพอที่จะพร้อมรุ่นสิ่ง)
มีบางอย่างเพิ่มเติม แต่สี่ควรจะเพียงพอ
... หรือว่ามันฟังดูดีนะ
แน่นอนมันฟังดูดี - สำหรับผู้เริ่มต้น