การใช้การควบคุมเวอร์ชันบางอย่างเมื่อทำงานคนเดียวและกับโครงการขนาดเล็ก?


30

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

  • ฉันไม่ต้องกังวลเรื่องการสำรองข้อมูลในเครื่องอีกต่อไป
  • ข้อผิดพลาดสามารถยกเลิกได้อย่างง่ายดาย
  • สามารถรักษาประวัติ

แต่ในทางกลับกันก็มีข้อเสียบางอย่างเช่น:

  • ทรัพยากรเพิ่มเติมที่จำเป็น
  • เวลาในการตั้งค่าทำความคุ้นเคยกับมัน ฯลฯ

จากประสบการณ์ของคุณมันเป็นสิ่งที่ดีหรือไม่ที่จะใช้การควบคุมการแก้ไขเมื่อทำงานคนเดียว?


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

คำตอบ:


46

ใช่.

ทั้งหมดนี้เป็นความผิดพลาดเพียงครั้งเดียวและคุณจะต้องเตะด้วยตัวเอง คุณยังอยู่ในตำแหน่งที่จะเลือกระบบควบคุมเวอร์ชัน (VCS) ที่ใช้ หากมีความเป็นไปได้ที่คุณจะทำงานในทีมพัฒนาในอนาคตนี่เป็นโอกาสอันดีที่คุณจะได้สัมผัสประสบการณ์จริงกับ VCS SVN และ Git (หรือ Mercurial) จะเป็นจุดเริ่มต้นที่ดีและควรใช้เวลาสองสามชั่วโมงในการเข้าใจคำสั่งพื้นฐานในแต่ละ VCS

ทีนี้มาหักล้างสิ่งที่จุดลบ ...

1) ทรัพยากรเพิ่มเติมที่จำเป็น

เพียงทรัพยากรที่จำเป็นต้องใช้พื้นที่ดิสก์ เนื่องจากนี่เป็นเปอร์เซ็นต์เล็กน้อย (เป็นGit น้อยกว่า X ) ของรหัสทั้งหมดของคุณฉันไม่คิดว่านี่จะเป็นปัญหา ไม่มีค่าใช้จ่ายใด ๆ

2) เวลาในการตั้งค่าทำความคุ้นเคยกับมัน ฯลฯ

จะต้องใช้เวลาในการเรียนรู้ แต่แต่ละชั่วโมงจะใช้เวลาเพียงไม่กี่ชั่วโมงเท่านั้น ในระยะยาวมีโอกาสที่จะช่วยให้คุณประหยัดเวลาได้ไม่ จำกัด (และอีกมากมาย) เมื่อคุณเข้าใจพื้นฐานของ VCS แล้วจะมีความพิถีพิถันน้อยกว่าการสำรองข้อมูลในเครื่องที่คุณมีอยู่ในใจ


5
+1: คะแนนดีมาก อย่างไรก็ตามฉันจะไม่แนะนำ svn: มันไม่อนุญาตให้ใครทำการเปลี่ยนแปลงเมื่อไม่ได้เชื่อมต่อกับอินเทอร์เน็ตซึ่งอาจเป็นข้อ จำกัด ที่แข็งแกร่งในบางครั้ง ฉันจะแนะนำ Git (สำหรับผู้ใช้ระดับสูง) หรือ Mercurial (สำหรับระบบที่ง่ายกว่า)
Eric O Lebigot

7
การลงคะแนนอีกครั้งสำหรับ Mercurial
Chris Holmes

4
@EOL การโค่นล้มสามารถใช้งานได้ในกรณีนี้ หากพื้นที่เก็บข้อมูลเป็นท้องถิ่นแล้วการเชื่อมต่ออินเทอร์เน็ตไม่จำเป็นต้องกระทำ (แม้ว่าฉันจะแนะนำให้ใช้ที่เก็บอย่างน้อยต้องแยกไดรฟ์ออกจากไดรฟ์พัฒนา)
Ken Henderson

1
@EOL: อาใช่ฉันลืมที่จะรวม Mercurial เพราะฉันไม่ได้ใช้มันมาก่อน จะแก้ไขทันที ในขณะที่ (หลังจากใช้ Git) ฉันจะไม่แตะ SVN หากฉันต้องใช้ SVN ยังคงใช้กันอย่างแพร่หลาย
Jonathan Khoo

1
@ken svn พร้อม repo ในท้องถิ่นเป็นดรอปบ็อกซ์เหมาะสำหรับผู้ใช้คนเดียว
Martin Beckett

13

ใช่. ใช้สำหรับทุกสิ่ง ใช้สำหรับทุกเอกสารที่คุณเขียนใน Word ใช้สำหรับรหัสทั้งหมดที่คุณเขียน ใช้สำหรับทุกภาพที่คุณสร้าง

นอกจากนี้เมื่อคุณเรียนรู้วิธีใช้แล้วคุณจะดีขึ้นเมื่อคุณทำงานในสภาพแวดล้อมแบบทีม


4
ปัญหาเฉพาะกับ Word เป็นว่ามันเป็นในรูปแบบไบนารีดังนั้นคุณจึงไม่สามารถทำdiff; อีกเหตุผลหนึ่งที่ใช้ LaTeX
gablin

จุดประสงค์ของการใช้กับภาพคืออะไร?
โกง

เช่น WinMerge สามารถกระจายเอกสาร Word และ Excel ได้
Simon

2
@Rook: จุดที่ใช้กับรูปภาพคือถ้าคุณแก้ไขรูปภาพคุณสามารถกลับไปใช้เวอร์ชั่นเก่าได้เสมอหากต้องการ
Alex D

9

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

git checkout master

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

ช่วงการเรียนรู้ไม่สูงชันมากและมีข้อมูลออนไลน์มากมายที่จะช่วยคุณเริ่มต้นใช้งาน ขุดลงไป มันคุ้มค่า.


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

5

การเปลี่ยนแปลงช่วยให้คุณมีที่ที่ดีในการบันทึกการเปลี่ยนแปลงของคุณโดยไม่เกะกะแหล่งที่มา


2

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

และคุณสามารถเข้าถึงได้ทุกที่ถ้าคุณต้องการ


4
คุณอาจต้องระมัดระวังเกี่ยวกับการอัปโหลดคุณสมบัติของ บริษัท ไปยังเซิร์ฟเวอร์ภายนอก มันอาจจะโอเคกับบาง บริษัท แต่คนอื่นจะขมวดคิ้ว
davidhaskins

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

2

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


2

หากคุณกำลังมองหาฟรีและให้การสนับสนุนแหล่งข้อมูลปิดฉันจะมองไปที่ Visual Studio Online ได้ฟรีถึง 5 devs และอยู่ด้วยตัวเอง ... ดี ... ใช่ นี่คือโพสต์ 4 ปีต่อมาดังนั้นคุณอาจมีการเปลี่ยนแปลงสถานการณ์ แต่สำหรับ devs อื่น ๆ ที่กำลังมองหาการควบคุมแหล่งที่ง่าย VSO เป็นหนึ่งในตัวเลือกที่ฉันชอบถ้าฉันไม่ต้องการเปิดเผยซอร์สโค้ดของฉัน IIRC Github นั้นฟรีสำหรับของโอเพนซอร์ซเท่านั้น แต่ราคาของมันนั้นไม่แพงมาก ทั้ง VSO และ Github รวมเข้ากับ Visual Studio ได้เป็นอย่างดีหากนั่นเป็น IDE ที่คุณเลือก


และ VSO สนับสนุน Git ทันที! ลาก่อน TFVC เก่า ๆ
RubberDuck

1

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


1

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

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