ใช้ระบบควบคุมเวอร์ชันแจกจ่ายเช่นคอมไพล์และใช้เครื่องโฟลเดอร์แชร์ของคุณเพื่อเก็บที่เก็บข้อมูลอ้างอิง นี่คือเหตุผล:
แต่ละโคลนเป็นการสำรองข้อมูล
หากเซิร์ฟเวอร์ฮาร์ดไดรฟ์ขัดข้องทุกคนมีสำเนาพร้อมที่จะนำไปใช้กับไดรฟ์หรือเซิร์ฟเวอร์ใหม่ เนื่องจาก บริษัท ของคุณไม่จริงจังกับการควบคุมเวอร์ชันฉันคิดว่ามันอาจเหมือนกับการสำรองข้อมูล
ข้อมูลอ้างอิงทั่วไป
การมีที่เก็บหลักพร้อมสาขาหลักช่วยให้สามารถทราบเวอร์ชันที่มีคำสุดท้าย วิธีนี้จะช่วยแก้ปัญหา "คุณได้ทดสอบการเปลี่ยนแปลงของคุณกับเวอร์ชั่นของ Franck แล้วหรือยังว่าคุณเป็น John ด้วยหรือไม่และคุณรวมมันเข้าด้วยกันได้อย่างไร"
ส่งมอบอย่างสะดวกสบายมากขึ้น
ลูกค้าต้องการรุ่นอัลฟ่าในวันนี้? ทีนี้คุณสามารถทดสอบได้ว่าอาจารย์มีความมั่นคงเพียงพอและส่งมอบให้หรือไม่ หากไม่ใช่และคุณไม่มีเวลาแก้ไขให้ย้อนเวลากลับไปและรับรุ่นที่เก่ากว่า แต่เสถียรกว่า คุณไม่สามารถทำเช่นนั้นได้หากคุณมีเวอร์ชั่นล่าสุดเท่านั้น
ย้อนเวลากลับไปและแก้ไขข้อผิดพลาดของคุณ
การผสานด้วยตนเองของคุณมีปัญหาที่คุณเห็นหลังจากผ่านไปสองสามวัน แต่คุณได้เขียนทับเนื้อหาของโฟลเดอร์ที่แชร์แล้วหรือยัง? หากไม่มี VSC คุณไม่มีประวัติดังนั้นคุณจะไม่สามารถย้อนกลับไปยังจุดที่คุณสามารถตรวจสอบข้อผิดพลาดที่คุณทำและแก้ไขได้อย่างง่ายดาย รหัสไม่เหมือนรูปภาพมันเหมือนหนัง: มันวิวัฒนาการมาทันเวลา คุณสามารถดึงรูปภาพจากภาพยนตร์ คุณไม่สามารถแยกภาพยนตร์จากรูปภาพ
ค้นหาข้อบกพร่องได้ง่ายขึ้น
มีข้อผิดพลาดปรากฏขึ้น แต่คุณไม่ได้สังเกตเห็นในขณะที่มีการนำเสนอดังนั้นคุณจึงไม่สามารถแก้ไขได้ในขณะที่รหัสนั้น "ร้อน" ตอนนี้คุณไม่รู้จริง ๆ ว่าการเปลี่ยนแปลงใดที่นำมาใช้ดังนั้นจึงอาจมาจากหลายตำแหน่งในรหัส จะใช้เวลาหลายชั่วโมงเพื่อหาที่ที่จะมอง ด้วย git คุณอาจเพิ่งพัฒนาทดสอบเพื่อบอกว่าข้อผิดพลาดเกิดขึ้นในรุ่นที่เฉพาะเจาะจงและใช้git bissect
เพื่อค้นหาความมุ่งมั่นที่แน่นอนที่นำข้อผิดพลาด แทนที่จะมองหาโค้ดหลายพันบรรทัดตอนนี้คุณรู้แล้วว่ามันอยู่ในการเปลี่ยนแปลง 10 บรรทัดและคุณสามารถทำการทดสอบในชุดทดสอบของคุณเพื่อให้แน่ใจว่าข้อผิดพลาดจะไม่ได้รับการแนะนำอีกครั้ง
ผู้พัฒนาแต่ละคนรับผิดชอบงานของตนเอง
หากคุณเป็นหัวหน้าทีมและไม่มี VCS คุณอาจต้องทำงานสกปรกการรวมกัน หากคุณทำด้วยตัวเองคุณอาจไม่รู้ทุกอย่างเกี่ยวกับการเปลี่ยนแปลงทั้งหมดและอาจแนะนำข้อผิดพลาด ตรงกันข้ามถ้าคุณถามคนที่เขียนรหัสเพื่อรวบรวมกับคุณทุกครั้งที่มีรหัสที่จะรวมแล้วนั่นคือเวลาที่พวกเขาจะไม่ใช้ในการผลิตรหัสใหม่
ด้วย VCS ในขั้นตอนการทำงานที่เรียบง่ายผู้พัฒนาจะต้องดูแลงานของเขาและแหล่งที่มาของการเปลี่ยนแปลงภายนอกหนึ่ง: สาขาหลัก อาจมี 1 หรือ 100 คนที่กระทำในสาขาหลักนั่นคือสิ่งเดียวกัน เพื่อให้สามารถผลักดันการเปลี่ยนแปลงของเขา / เธอเขา / เธอจะต้องปรับให้เข้ากับการเปลี่ยนแปลงล่าสุดที่ทำโดยคนอื่น อาจดูเหมือนจะใช้เวลานานกว่าในการกดรหัส แต่นั่นเป็นเพราะคุณกำลังทำการผสานซึ่งจะต้องใช้เวลาอยู่ดี
ความแตกต่างคือการผสานนั้นกระทำโดยผู้ที่ทำการเปลี่ยนแปลงซึ่งรู้รหัสนั้นดีที่สุดเพราะเขา / เธอเขียนมัน
ใครเป็นคนเขียนรหัสนั้น
มีจุดบกพร่องที่นี่ แต่ใครเป็นคนเขียนบรรทัดของรหัสนั้น มันยากที่จะจำโดยเฉพาะอย่างยิ่งถ้าโครงการใช้เวลาเจ็ดเดือน git blame
จะบอกคุณว่าใครและเมื่อไหร่ที่เขียนบรรทัดดังนั้นคุณสามารถถามคนที่ใช่และไม่มี "ฉันจำไม่ได้ว่าเขียน"
โครงการกำลังใหญ่ขึ้นเรื่อย ๆ
ลูกค้าต้องการคุณสมบัติเพิ่มเติมและคุณเป็นทีมเล็กเกินไปคุณจะต้องมีนักพัฒนาซอฟต์แวร์คนอื่น คุณจะจัดการความซับซ้อนของการผสานที่เพิ่มขึ้นโดยไม่มี VSC ได้อย่างไร
การเปลี่ยนแปลงที่เร่งด่วน
ลูกค้าโทรหาและขอแก้ไขข้อบกพร่องที่สำคัญสำหรับการผลิต แต่ขณะนี้คุณกำลังทำงานกับคุณสมบัติใหม่ เพียงแค่git stash
ใส่การเปลี่ยนแปลงของคุณหรือมอบหมายในสาขาใหม่และผลักดันการเปลี่ยนแปลงและคุณพร้อมที่จะเริ่มทำงานในการแก้ไขด่วนโดยไม่ต้องกลัวว่าจะสูญเสียงานที่ค้างอยู่ของคุณ
มันทำงานได้ 10 นาทีที่แล้ว
คุณกำลังทำการเปลี่ยนแปลงในเครื่องและบางอย่างที่ทำงานเมื่อ 10 นาทีที่แล้วหยุดทำงาน หากไม่มี VCS คุณจะต้องจ้องมองที่รหัสหรือทำสิ่งที่ดีที่สุดให้ทำสำเนาของรุ่นอ้างอิงและต่างออกไปเพื่อดูว่าคุณเปลี่ยนแปลงอะไร โอ้รอข้อมูลอ้างอิงเปลี่ยนไปตั้งแต่ฉันเริ่มทำงานดังนั้นฉันจึงไม่สามารถแยกได้อีกต่อไป และฉันไม่คิดว่าจะเก็บสำเนาของรหัสที่ฉันใช้ตามการเปลี่ยนแปลงของฉันไว้
ด้วย VCS คุณเพียงแค่ทำสิ่งต่าง ๆgit diff
ในทันทีและมีการเปลี่ยนแปลงเมื่อเทียบกับรหัสที่ถูกต้องที่คุณใช้
ฉันต้องเก็บบันทึกการดีบักของฉัน
ดังนั้นคุณเป็นคนเลวและไม่ใช้การบันทึกหรือไม่ คุณต้องโรยprintf
โค้ดโค๊ดทั้งหมดของคุณจนกว่าคุณจะพบชิ้นส่วนทั้งหมดของข้อผิดพลาดที่น่ารังเกียจ? ตอนนี้คุณพบแล้วแก้ไขได้ แต่ต้องการเก็บรหัสการดีบักที่ออกแบบมาอย่างดีเพื่อแก้ไขปัญหาที่เหลือ
หากไม่มี VCS คุณจะต้องคัดลอกไฟล์ expurge code debug (ซึ่งอาจเพิ่มข้อผิดพลาดในการแก้ไขบางส่วน) ดันมันและนำไฟล์สำรองที่สำรองไว้กลับมา โอ้ดูเหมือนว่าจะมีรหัสการดีบักบางส่วนอยู่ในนั้น
ด้วยคอมไพล์คุณเพียงgit add --patch
และเลือกกี่บรรทัดของรหัสที่คุณต้องการที่จะใส่ในกระทำของคุณและสามารถกระทำเพียงว่า จากนั้นคุณทำงานต่อและยังคงมีรหัสการดีบัก คุณไม่จำเป็นต้องแตะรหัสดังนั้นจึงไม่มีข้อผิดพลาดในการคัดลอก / วาง
ลูกบอลโคลนขนาดใหญ่
หากไม่มี VCS ผู้คนก็จะทำงานเคียงข้างกันและให้การเปลี่ยนแปลงกับคุณบางครั้งก็ไม่เกี่ยวข้องกัน เมื่อมีรหัสเกินกว่าจะตรวจสอบได้ยากที่จะหาจุดบกพร่อง
VCS จะช่วยให้คุณทำการเปลี่ยนแปลงเล็กน้อยเพิ่มเติมและมอบการเปลี่ยนแปลงให้คุณ การเปลี่ยนแปลงเป็นสิ่งสำคัญ: คนต้องบอกมีเหตุผลที่พวกเขากำลังทำการเปลี่ยนแปลงที่ไม่ได้สิ่งที่เปลี่ยนแปลง (เช่นสิ่งที่คำถามจะตอบ alredy จากการเปลี่ยนแปลงรหัสเอง) ซึ่งหมายความว่าเมื่อคุณตรวจสอบโค้ดของคุณลักษณะใหม่เช่นคุณจะไม่ต้องอ่านการเปลี่ยนแปลงแบบผสมที่ไม่เกี่ยวข้องจำนวนมากเช่นการแก้ไขข้อบกพร่องที่ไม่เกี่ยวข้อง สิ่งนี้จะช่วยเน้นรหัสที่คุณสนใจ
ถ้าฉันให้มันฝรั่งแก่คุณ 100 ต่อ 1 และอีกอันหนึ่งก็เน่าคุณจะพบมันทันที ทีนี้ถ้าฉันทิ้งมันฝรั่งไว้ 100 ใบต่อหน้าคุณและขอให้คุณหามันฝรั่งที่เน่าเสียนั่นไม่ใช่งานเดียวกัน
รอยหยัก
หวังว่าคุณจะมีนโยบายสไตล์การเขียนโปรแกรมที่ดีมิฉะนั้นการเปลี่ยนแปลงการเยื้องจะทำให้คุณบ้าถ้าคุณผสานด้วยมือ แน่นอนคุณสามารถละเว้นช่องว่างในการเปลี่ยนแปลง (แต่ไม่ใช่ในภาษาเมื่อการเยื้องนับเช่น Python) แต่คุณจะได้รับรหัสที่ดูแปลก ๆ อ่านยาก
คุณเป็นหัวหน้าโครงการ
หากคุณเป็นผู้นำนั่นหมายความว่าคุณจะได้รับโทษหากสิ่งต่างๆไม่ได้ผล หากคุณไม่สะดวกกับสถานการณ์เพราะเจ้านายของคุณยังไม่เข้าใจว่าการใช้เครื่องมือที่เหมาะสมสำหรับงานที่ถูกต้องคุ้มค่าอย่างน้อยที่สุดฉันก็ปฏิเสธที่จะเป็นผู้นำของความล้มเหลวที่คาดเดาได้