ฉันจะตั้งค่าระบบควบคุมซอร์สโค้ดสำหรับตัวเองได้อย่างไร


23

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

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

ฉันทำงานใน. NET (Windows Phone 7 อันที่จริง)


1
ใช้ dropbox เพียงแค่ติดตั้งบนเครื่องทั้งสองและทำได้ด้วย ฟรี (สูงสุด 2GB) สำหรับการควบคุมแหล่งที่มาของสถานการณ์ของคุณอยู่ด้านบน (IMHO)
Darknight

26
การควบคุมแหล่งที่มาไม่เคยอยู่ด้านบน (IMHO)!
Mongus Pong

4
ใช้เวลา <15 นาที (ขึ้นอยู่กับแบนด์วิดท์ดาวน์โหลด) เพื่อติดตั้งและใช้ Git และทำงาน
Mongus Pong

2
ใช้เวลา <3 นาที (ขึ้นอยู่กับการดาวน์โหลดแบนด์วิดท์) เพื่อติดตั้งและรับ dropbox และเปิดใช้งาน
Darknight

4
DropBox เป็นข้อเสนอแนะที่น่ากลัว! มันไม่ใช่ระบบควบคุมเวอร์ชันที่เหมาะสมมันใช้สำหรับการแบ่งปันข้อมูล มันมีนิสัยที่น่ารังเกียจมากในการอัปโหลดและดาวน์โหลดการเปลี่ยนแปลงทุกครั้งที่คุณบันทึกไฟล์และซิงค์กับไคลเอนต์อื่น ๆแบบเรียลไทม์มันทำให้เครื่องของคุณทำเครือข่ายที่ไม่จำเป็นโดยเฉพาะอย่างยิ่งหากคุณใช้สิ่งที่สร้างสิ่งประดิษฐ์ ในไดเรกทอรีเดียวกันที่อยู่ใน DropBox เรียนรู้และใช้ Git หรือ DVCS ที่เทียบเท่ากัน

คำตอบ:


39

วิธีที่ง่ายที่สุดคือใช้หนึ่งในระบบออนไลน์ กร้าGitHubหรือBitBucket สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Git หรือ Mercurial ให้ตรวจสอบGit ReferenceและHg Initตามลำดับ


อาจเป็นไปได้ว่าหากเครื่องทั้งหมดมีการเชื่อมต่ออินเทอร์เน็ต แต่มีกรณีการใช้งานอื่น ตัวอย่างเช่นฉันเก็บที่เก็บข้อมูลการโค่นล้มบางส่วนไว้ในแฟลชไดรฟ์ USB และบางอันที่ใหญ่กว่า (ไม่ใช่ซอร์สโค้ด - รูปถ่ายและสิ่งของ) บนฮาร์ดไดรฟ์ภายนอก เมื่อฉันมีความสุขกับการเปลี่ยนแปลงฉันก็น่าจะมีที่เก็บ Mercurial ในแฟลชไดรฟ์ USB เหตุผลหนึ่ง - ฉันยังคงใช้ Windows XP สำหรับสิ่งต่าง ๆ มากมาย แต่ฉันจะไม่อนุญาตภายใต้สถานการณ์ใด ๆ (แล็ปท็อปหรือเดสก์ท็อป) บนอินเทอร์เน็ตในทุกวันนี้
Steve314

21
สิ่งที่ดีเกี่ยวกับระบบควบคุมเวอร์ชันแบบกระจายเช่น Git และ Mercurial คือคุณสามารถทำงานกับ repo ของคุณได้จากนั้นทำการซิงค์กับเซิร์ฟเวอร์กลางบางตัวเมื่อใดก็ตามที่คุณมี 'การเชื่อมต่อเน็ตเวิร์คมีประโยชน์ เสียงเหมือนทางออกที่ดีที่สุดสำหรับ OP
Michelle Tilley

@Brandon - ทำงานได้กับ repo หลักในไดรฟ์ภายนอกเมื่อเชื่อมต่อตลอดเวลาถือเป็นความเจ็บปวด
Steve314

2
จำไว้ว่า BitBucket มีที่เก็บข้อมูลส่วนตัวฟรี (ไม่เหมือนกับ GitHub) ซึ่งอาจทำให้เป็นตัวเลือกที่ดีกว่าสำหรับ OP
Kevin Yap

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

7

คุณสามารถใช้ DVCS เช่น Git หรือ Mercurial ที่สามารถสร้างพื้นที่เก็บข้อมูลในเครื่องจากนั้นติดตั้งDropboxและใส่โฟลเดอร์โครงการของคุณ (รวมถึงโฟลเดอร์ที่เก็บของหลักสูตร) ​​ลงในโฟลเดอร์ดรอปบ็อกซ์

Dropbox จะจัดการกับการซิงโครไนซ์และสามารถจัดการสถานการณ์ออฟไลน์ได้ตราบใดที่คุณกำลังแก้ไขในที่เดียวระหว่างการซิงโครไนซ์เท่านั้น

BTW Dropbox จะไม่เปิดเผยไฟล์ของคุณเป็นสาธารณะโดยค่าเริ่มต้น แต่คุณยังสามารถเปิดเผยได้หากคุณต้องการ

แก้ไข

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



เป็นหลักสิ่งที่ฉันทำ Mercurial repositories บนเดสก์ท็อปและแล็ปท็อปซึ่งเป็นที่เก็บหลักใน Dropbox ซึ่งฉันดันไปมา
David Thornley

@ David ฉันทำในสิ่งที่ตรงกันข้าม, repo หลักใน PC, repo ใน Dropbox รวมถึงไฟล์ซอร์สโค้ดที่ฉันใช้งานอยู่
Endy Tjahjono

@Endy Tjahjono: ฟังจากความคิดเห็นของคุณเหมือนกับที่คุณทำงานบนคอมพิวเตอร์เครื่องเดียว ฉันใช้เดสก์ท็อปของฉันในบางครั้งและแล็ปท็อปของฉันบางครั้งดังนั้นจึงใช้งานไม่ได้จริง ๆ กับที่เก็บหลักของฉันในหนึ่งในนั้น
David Thornley

@David ความผิดพลาดของฉันฉันควรจะบอก repo 'backup' ในพีซีหลักของฉัน repo 'main' ของฉันคือ repo ที่ทำงานภายในโฟลเดอร์ดรอปบ็อกซ์ ฉันแค่กดไปที่ repo สำรองบางครั้งเพื่อวัตถุประสงค์ในการสำรองข้อมูล
Endy Tjahjono

6

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

ใช้คอมไพล์

ขั้นตอนที่ 1: ดาวน์โหลดและติดตั้งคอมไพล์ สำหรับ Windows คุณอาจต้องการที่จะใช้TortoiseGit บางบันทึกการติดตั้งอยู่ที่นี่

ขั้นตอนที่ 2: ทำตามหนังสือชุมชนของคอมไพล์ในการเริ่มต้นเก็บข้อมูลในท้องถิ่นสำหรับโครงการของคุณและกระทำเพื่อเก็บข้อมูล

ขั้นตอนที่ 3: เพื่อวางสิ่งต่าง ๆ บน "คลาวด์" นั่นคือ GitHub คุณสามารถทำตามบทช่วยสอนนี้ได้

การใช้ Mercurial

ขั้นตอนที่ 1: ดาวน์โหลดและติดตั้ง Mercurial สำหรับ Windows คุณอาจต้องการที่จะใช้TortoiseHg

ขั้นตอนที่ 2: ทำตามคู่มือการเริ่มต้นอย่างรวดเร็วเพื่อสร้างที่เก็บสำหรับโครงการของคุณและส่งไปยังที่เก็บ

ขั้นตอนที่ 3 เพื่อวางสิ่งต่าง ๆ บน "คลาวด์" ที่เป็นบิตคุณสามารถทำตามบทช่วยสอนนี้ได้

หากคุณกำลังทำงานบน .NET คุณอาจต้องการที่จะใช้ Mercurial เพราะ(ประเภท)การสนับสนุนที่ดีใน Windows ในขณะเขียน


2

ดังที่ @ peter-rowell และคนอื่นพูดอย่างถูกต้องวิธีที่ง่ายที่สุดคือการใช้ DVCS ใด ๆ เช่น Git และระบบออนไลน์ที่เกี่ยวข้องเช่น Github หรือ Unfuddle ฉันใช้ Git และ Unfuddle เป็นการส่วนตัว

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


การคลายเป็นบริการที่ยอดเยี่ยม โดยทั่วไปมันเป็นเพียงสำเนาของ redmine ที่มีการปรับแต่งที่ดี
Keyo

2

เกือบทุก DVCS จะช่วยได้

ความนิยมมากที่สุดคือ Git, Mercurial และอื่น ๆ ไม่กี่; แต่ผมชอบจริงๆฟอสซิล มันเป็นไฟล์ปฏิบัติการขนาดเล็ก (เล็ก!) พกพาง่ายอยู่ในตัวเองมีหลายแพลตฟอร์มและรวมถึงวิกิ, GUI บนเว็บ, ระบบตั๋ว, เครื่องจัดการเอกสาร ฯลฯ


1
Bitbucket เป็นบริการของ Mercurial โฮสติ้ง
Tamás Szelei

ขอบคุณ ฉันรู้ว่า; แต่ชื่อได้รับอีนุงตุงนังในใจของฉัน
ฮาเวียร์

1

ตัวเลือกที่ผมจะแนะนำจะเป็นเตาเผา มันทำโดยคนที่แน่นอนเดียวกันกับที่ทำให้ FogBugz และ Stack Exchange มันน่าจะดีทีเดียวมันฟรีสำหรับผู้ใช้ 3 คนที่ฉันเชื่อ สเกลนั้นเหมือนกับ FogBugz และทั้งสองสามารถรวมเข้าด้วยกันเพื่อให้คุณสามารถติดตามข้อบกพร่องและคุณสมบัติได้เช่นกัน

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


มันอาจฟรีสำหรับผู้ใช้ 3 คน แต่ตอนนี้ $ 25 ต่อผู้ใช้ต่อเดือน ถึงกระนั้นดูเหมือนว่าเป็นสินค้าที่ยอดเยี่ยม
Cyberherbalist

1

หากความเป็นส่วนตัวของรหัสของคุณไม่เป็นปัญหาGoogle Codeอาจเป็นโซลูชันที่ทำงานได้ ดูแลส่วนโฮสต์และเป็นอิสระและค่อนข้างง่ายต่อการติดตั้ง รองรับการโค่นล้ม Mercurial และ Git ซึ่งทั้งหมดมีไคลเอนต์ Windows นอกจากนี้ยังทำงานร่วมกับ Google ID เพื่อให้คุณสามารถเพิ่มผู้มีส่วนร่วมในโครงการได้อย่างง่ายดาย ฉันโฮสต์โครงการงานอดิเรกของฉันที่นั่นโดยใช้ Mercurial ฉันมีลูกค้า TortoiseHg ติดตั้งอยู่ทั้งในบ้านและที่ทำงานดังนั้นฉันจึงสามารถทำงานในโครงการของฉันในช่วงพัก


ดี! ขอบคุณที่พูดถึงสิ่งนี้ - ฉันยังไม่เคยได้ยินรหัส Google มาก่อน
Cyberherbalist

0

ขึ้นอยู่กับความรู้ของคุณเกี่ยวกับการตั้งค่าเซิร์ฟเวอร์และเวลาที่คุณต้องการลงทุน

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

หากค่าใช้จ่ายมากเกินไปสำหรับคุณคุณสามารถใช้ระบบออนไลน์ที่แนะนำแล้วเช่น GitHub


0

ที่ง่ายที่สุดน่าจะไปกับผู้ให้บริการ git github มีความเป็นไปได้ที่จะจ่ายสำหรับบัญชีส่วนตัว

แต่อย่าลืมเกี่ยวกับ svn มันง่ายและใช้งานง่าย คุณสามารถติดตั้งเซิร์ฟเวอร์ svn ที่ไหนสักแห่งที่คุณสามารถเข้าถึงได้อาจเป็นที่ทำงาน (และโครงการเช่นเซิร์ฟเวอร์ svn ของ Visual ทำให้ง่ายบน windows) ในฐานะลูกค้าคุณสามารถใช้ปลั๊กอิน Visual Studio หรือ tortoisesvn

สิ่งเดียวที่คุณต้องจำคือคุณต้องยอมรับและอัปเดตเมื่อคุณสลับคอมพิวเตอร์


ฉันไม่คิดว่า SVN เป็นคำตอบที่ถูกที่นี่ ฉันพบว่าการติดตั้ง Mercurial ง่ายกว่า SVN ง่ายกว่าและเป็นระบบที่ดีกว่า SVN SVN ไม่มีประโยชน์หากไม่ได้เชื่อมต่อโดยตรงกับที่เก็บข้อมูลส่วนกลางและ OP มีคอมพิวเตอร์สองเครื่องที่เห็นได้ชัดว่าไม่มีลิงก์โดยตรง
David Thornley

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

ข้อสันนิษฐานของฉันคือเขากำลังเคลื่อนย้ายแล็ปท็อปไปกับเขาเมื่อเขาไปทำงานไม่เช่นนั้นจะไม่ง่ายในการติดตั้งและเดวิดก็ถูกต้อง
Johan

ใช้เวลาในการตั้งค่า git หรือ Hg repo ( git init) สองสามวินาที ด้วยการโค่นล้มคุณต้องมีเซิร์ฟเวอร์ก่อนซึ่งยากกว่าการรันgit/hg initในไดเรกทอรีของคุณ ฉันใจร้อนและขี้เกียจและ Git สนับสนุนให้ฉันใช้ SCM เพราะมัน (การรวม, การเริ่มต้น, การกระทำ) นั้นรวดเร็วและไม่เจ็บปวด
Keyo

0

ฉันจะใช้ถั่ว มันใช้งานได้ดีสำหรับฉันในฐานะเซิร์ฟเวอร์ SVN ส่วนตัว พวกเขามีโฮสติ้ง Git แต่ฉันไม่ได้ลอง พวกเขามีบัญชีฟรีที่จะเริ่มต้นด้วยและจากนั้นคุณสามารถเปลี่ยนเป็นบัญชีแบบชำระเงินหากจำเป็น


-2

Dropbox

โซลูชันอื่น ๆ ทั้งหมดเป็นที่ต้องการสำหรับคุณมากเกินไป:

เพียงติดตั้งDropboxบนคอมพิวเตอร์ทั้งสองเครื่อง

การควบคุมที่มาเต็มเป่าเป็นดีแต่ในสถานการณ์ของคุณไม่จำเป็นต้องของIMHO

นี่เป็นเส้นทางที่ง่ายที่สุดที่ง่ายที่สุดในการใช้ -> คุณเพิ่งจบด้วยโฟลเดอร์ที่ทำให้ข้อมูลตรงกันอัตโนมัติในหลาย ๆ เครื่องตามที่คุณต้องการ


1
คุณสามารถใช้ Git ร่วมกับ Dropbox ได้ ดูstackoverflow.com/questions/1960799/…
Mongus Pong

4
ไม่มีอะไรล้นเหลือเกี่ยวกับการใช้การควบคุมแหล่งข้อมูลโดยเฉพาะอย่างยิ่งเมื่อ Git และ HG ตั้งค่าได้ง่าย ฉันไม่คิดว่ามันเป็นเรื่องสำคัญที่เขาเป็นผู้พัฒนาเพียงผู้เดียวหากเขาเขียนรหัสการผลิตเขาต้องการการควบคุมแหล่งที่มา
richeym

ใช่คุณอาจถูกต้อง ฉันคิดว่าสำหรับนักพัฒนาเดียวมันไม่จำเป็นธรรมดาและ OTT แต่ห่านั่นคือมุมมองของฉัน
Darknight

git init, git add ., git commit -m "bla"เป็นเรื่องเกี่ยวกับสิ่งที่คุณจำเป็นต้องรู้เพื่อกระทำการบางรหัส ไม่ยากและคุณจะได้รับส่วนที่คุณสามารถย้อนกลับได้ แน่นอนว่าผลประโยชน์มีความสำคัญมากกว่าในทีม แต่ฉันชอบที่จะสามารถตั้งเวลากลับไปสู่จุดที่สำคัญได้ ความสามารถในการแยกสาขาและสะสมทำให้ฉันมีประสิทธิภาพมากขึ้นเช่นกัน
Keyo

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