簡體   English   中英

開始使用版本控制

[英]Getting started with Version Control

我需要實現版本控制,即使只是我在家做的開發。 在過去的幾年里,我已經閱讀了關於 Subversion 是多么偉大的文章,並且我正准備致力於學習這方面的知識,直到我聽說 Git 是即將到來的版本控制系統。

鑒於這種情況,我應該暫緩一下,看看哪一個名列前茅嗎? 它們的相對優勢是什么?

我注意到 Git 的一個問題是沒有很多功能齊全的 GUI,這對我團隊中的許多用戶來說很重要。

此外,不介意有關如何開始使用其中一個的建議。 (教程等)

版本控制最重要的是:

只是開始使用它

不使用版本控制是一個可怕的想法。 如果您沒有使用版本控制,請立即停止閱讀並開始使用它。

它很容易轉換

cvs<->svn<->git<->hg

你選擇哪一個並不重要。 只需選擇最容易使用的一個,然后開始記錄代碼的歷史記錄。 您可以隨后遷移到另一個(D)VCS。

如果您正在尋找易於使用的GUI,請查看TortoiseSVN(Windows)版本(Mac) (建議通過編寫而不是評論


編輯:

pix0r說:

Git有一些不錯的功能,但除非你已經使用過更復雜的標准,比如CVS或Subversion,否則你將無法欣賞它們。

這個。 如果你不知道版本控制可以為你做什么,使用git是沒有意義的。

編輯2:

剛看到reddit上的這個鏈接: Subversion Cheat Sheet svn命令行的快速參考。

使用subversion,它易於設置,易於使用,並且有很多工具。 任何未來的修訂系統都將從SVN功能導入,因此如果您的需求增長,就不會無法改變。

Subversion Book是學習該工具的最佳選擇。 可能還有其他快速入門教程,但本書是您可以找到的最佳單一參考。

Git有一些不錯的功能,但除非你已經使用過更復雜的標准,比如CVS或Subversion,否則你將無法欣賞它們。 我絕對同意以前的海報,並從Subversion開始。

如果您是versioncontrol的新手,請閱讀:
源控制HOWTO

去SVN。 如果您以前從未使用過源代碼控制,那么無論如何都不會對您產生任何影響。

此外,使用源控制系統不涉及大量學習。 如果您學習了一個,您可以在以后輕松切換到另一個。

SVN是一個很好的工具,它應該滿足您的大部分需求。 而且由於它已經存在,它有一個公平的GUI工具共享(例如TortoiseSVN)。

去SVN。

我使用過RCS,CVS,SCCS,SourceSafe,Vault,perforce,subversion和git。

我評估了BitKeeper,Dimensions,arch,bazaar,svk,ClearCase,PVCS和Synergy。

如果我今天必須啟動一個新的存儲庫,我會選擇git 把手放下。

它是免費的,快速的,並且正在積極開發中。

您可以使用git-svn將其用作任何subversion存儲庫的客戶端。

它搖滾。

有關大多數基本概念的友好解釋,請參閱版本控制的可視指南 這篇文章非常適合SVN。

@ superjoe30

如果您是唯一的程序員,那么在您自己的計算機上使用源代碼控制呢? 這是好習慣嗎? 有相關的提示或技巧嗎?

我發現git實際上更容易,因為你不需要服務器或擔心輸入URL等等。 您的版本控制內容只存在於項目內的.git目錄中,您只需繼續使用它即可。

5秒介紹(假設您已安裝)

cd myproject
git init
git add * # add all the files
git commit

下次你做一些改變

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a

只要你這樣做,git就會退縮。 如果你陷入困境,你的代碼在nice git存儲庫中是安全的。 這很棒

  • 注意:你可能會發現使用它們比使用它們要困難得多,但是這個問題遠比沒有文件要好得多!

根據我自己的經驗,我不會推薦git作為版本控制的介紹。 我已經使用它幾個月了,而且我的印象是它非常強大 - 現在我已經部分了解它 - 相當直觀。 然而,即使我多年來一直使用版本控制,學習曲線也非常陡峭。 它也有過於富有表現力 - 它支持許多不同的工作流程和開發模型,但是對於“最佳”使用方式的唯一指導是谷歌搜索的幾頁深度,這也使新手選擇變得棘手起來。

也就是說,從帶有git的空白平板開始可能實際上更容易 - 我的VCS體驗全部采用集中式版本控制(CVS,SVN,Perforce ......),部分我(正在進行!)的git困難已經存在理解分布式模型的含義。 我簡單地看了一下像Bazaar和Mercurial這樣的其他DVCS,他們似乎對新手友好了。

無論如何,正如其他人所說,Subversion可能是習慣版本控制思維模式的最簡單方法,並且可以獲得VCS優勢的實際體驗(回滾,分支,協作開發,更輕松的代碼審查等)。

哦,不要從CVS開始。 它仍然在實際使用中,並且具有優勢,但恕我直言,它有太多的歷史怪癖和實現問題(非原子提交!)是一個很好的學習方法。

我的投票是Subversion。 它非常強大,但易於使用,並且有一些很棒的工具,比如TortoiseSVN

但正如其他人在我之前所說,只是開始使用它。 源代碼控制是軟件開發過程中非常重要的一部分。 沒有“嚴肅”的軟件項目應該沒有它。

在我目前的工作中,我的前任沒有使用任何類型的版本控制。 在至少3個不同的地方只有大量的文件夾,他保留了所有的項目。 任何隨機項目文件夾都可以找到至少一個文件夾名稱“project(OLD)”和一個名為“project”的文件夾

使用版本控制,您永遠不必復制“安全”版本。 你真的不必擔心你的IDE會破壞你正在處理的文件(我正在看你,REALBasic 5.5)因為你每天都很容易提交(閱讀:保存)你的工作。

不用說,我發現它存在后的第二天就安裝了版本控件。

此外,TortoiseSVN使得提交到數據庫就像右鍵單擊文件夾一樣簡單。

如果要避免任何命令行工作,還要為服務器嘗試visual svn

Git優於顛覆,但它在前沿有點偏執。

我會說,如果你剛剛開始,就跳到邊緣; 設置免費帳戶@ http://github.com

他們在現場有教育材料來設置和使用git。

如果您使用的是Mac OSX,我發現http://www.versionsapp.com/">版本是SVN令人難以置信的(免費)GUI前端。

不要等 選一個,然后去吧。 所有系統都有其優點和缺點。 你的力量可能會消失,你的計算機被盜,或者你忘了撤消一個重大的改變而你所有的代碼都會被炒掉,而你正等着看誰勝出來了。

SubVersion是您的最佳選擇,正如Karl Seguin所指出的那樣轉移到另一個版本控制系統不會有問題。 SVN也很容易在客戶端使用易於使用的GUI(TortoiseSVN)。

http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

如果您選擇使用subversion並且想要托管自己的svn服務器,那么有一個非常好的,簡單的基於Windows的服務器,稱為VisualSVN服務器。 它隱藏了設置apache服務器的復雜性,你基本上只需要下一步。 用戶配置使用webUI而不是配置進行處理

http://www.visualsvn.com/server/

使用公共服務rlike beanstalk可能更容易,但有些人喜歡擁有自己的存儲庫,無論是速度還是安全性

使用TortoiseSVN(如果在mac上,則為version.app)。 只需安裝即可。 如果您需要一個托管代碼的地方,請訪問http://beanstalkapp.com/

Coding Horror 有一篇關於如何在 Windows 上設置 Subversion的精彩帖子。

按照教程,我能夠在本地運行 Subervsion 和 TortoiseSVN,並從中獲得所需的教育。

就 Git 而言,對它們進行動手實驗可能是一個好主意,以了解哪個適合您的特定開發實踐。

在版本控制系統之間切換並不困難。 正如其他人所說,重要的是盡快開始使用任何東西。 使用源代碼控制而不是使用源代碼控制的好處大大超過了不同類型的源代碼控制之間的差異優勢。

請記住,無論您使用何種版本的源代碼控制,您都可以通過將舊系統中的文件放入磁盤,然后將這些原始文件導入新系統,從而強制轉換到另一個系統。

此外,熟悉源代碼控制基礎知識是軟件開發人員非常非常重要的技能。

我肯定會選擇SVN而不是CVS,只是因為使用CVS學習源代碼控制的人傾向於使用“ svn delete ”然后使用“ svn add ”而不是“ svn move ”。 這使得查找特定文件的所有先前版本變得更加困難。 您可以隨時升級到使用git-svn。 我個人認為這是更容易學習比HG,但真正使用SVN是它已在很大程度上成為開源軟件的事實上的版本控制系統的主要原因

如果您計划學習/使用D ,則幾乎必須訪問第三方存儲庫,如DSource

@ superjoe30是的,絕對的。 一旦你開始使用版本控制,你永遠不會回去。 我把它用於一切,甚至我的“家”文件夾。

@Orion Edwards Subversion不需要服務器。 您可以直接訪問本地存儲庫(當然是通過客戶端),並且不涉及服務器進程。

只要使用TortoiseSVN,你甚至可以在不知道實際的Subversion命令的情況下生活......但這很糟糕。 幸運的是,當你無價的存儲庫首次被破壞時,總會有一個“很好的機會”來學習它們。

是的,它發生了。

正如其他地方多次提到的,Just Do It。 通過閱讀紅皮書中的快速入門指南,我可以在Windows下從頭開始使用Subversion。 一旦我將TortoiseSVN指向存儲庫,我就開始了。 我花了一段時間才得到更好的分數,但是他們只是輕微的駝峰才能克服。

我建議安裝Subversion服務而不是使用file:// URL,但這主要是個人偏好。 對於存儲在開發計算機上的存儲庫,file://工作正常。

從個人經驗來看,svn將是我的推薦。 您甚至可以使用像Beanstalk這樣的服務來提供免費帳戶(顯然有限制,但對於任何小型項目都足夠)來測試水域。 但正如其他人所說,git是優越的,可能值得研究。

當我決定使用代碼版本控制系統時,我四處尋找有關如何入門的任何好教程,但沒有找到任何可以幫助我的內容。

所以我簡單地為客戶端安裝了SVN服務器和Tortoise SVN並潛入了深度,我不知道如何使用它。

開始使用SVN進行實際工作,但嘗試花點時間擺弄Git和/或Mercurial。 SVN在生產方面相當穩定,但最終你將面臨一個需要分布式SCM的場景,屆時你將得到適當的武裝,新系統將足夠成熟。

是的,SVN是首選,除非你真的需要git的特殊功能。 SVN很難; 這聽起來像git更復雜。 你可以從像Beanstalk這樣的人那里獲得托管的svn - 除非你有內部Linux人員,我真的推薦它。 事情可能很容易出錯,讓別人找工作就好了。

Eric Sink提供了一個關於版本控制的優秀教程 ,無論您使用哪種系統,都值得一讀。

superjoe30寫道

相關問題(也許可以編輯答案來回答這個問題):

如果您是唯一的程序員,那么在您自己的計算機上使用源代碼控制呢? 是>>這個好習慣嗎? 有相關的提示或技巧嗎?

我將SVN用於我的所有個人項目。 我開始在家用機器上運行svn但最終遷移到Dreamhost。 他們的托管包包括Subversion是非常合理的。

現在簡化SVN服務器設置的一個主要技巧是使用虛擬設備。 也就是說,預先安裝了subversion並且(大部分)預先配置了subversion的虛擬機 - 幾乎就是即插即用的東西。 你可以在這里這里這里試試,或者只是嘗試在Google上搜索“顛覆虛擬設備”。

在閱讀了 Wil Shipleys 的博客后,我開始使用 subversion。

所以我開始檢查代碼,一台機器和dreamhost帳戶。 然后,在我不小心刪除了一個函數並保存了我的項目之后,我知道我陷入了“dudu”的深淵,但是使用 subversion 我剛剛檢查了該文件的最新版本,就像什么也沒發生一樣。

我現在對一切都使用版本控制。 我打算轉移到 git,因為它更快,離線工作,占用更少的空間,哦,天哪,它更快。

使用 svn 而不是 cvs 的一個重要原因是 svn 支持二進制差異。 這對許多程序員來說可能無關緊要,但如果您要對 10Mb 的圖像進行一系列微小的更改,則每次在您的存儲庫中都有一個唯一的副本會非常快地占用空間。

我在 Windows 上使用 TortoiseSVN,但在 Mac 上已經通過(現在商業)版本客戶端使用商業CornerStone客戶端。 我發現包括 RapidSVN 在內的一系列免費 Mac 客戶端有足夠的痛點讓我掏出真正的美元。 CornerStone 提供的用於捕獲我忘記添加到存儲庫的文件的安全網對我來說物有所值。 我花了很多時間與位於相反時區的美國客戶合作,因此無法承受忘記添加文件的錯誤!

如果在窗戶盒子上快速而骯臟的洗脫是CVSNT。 易於使用只需設置它並且工作得很好。

我自己更喜歡SVN,但這是一個很好的快速使用。

簡短回答:Subversion 如果你是唯一一個編碼它的人,或者你和你一起工作的每個人都在現場。 如果您與不同站點的人一起工作並且您的代碼庫很大,請使用 GIT。

Subversion 非常非常容易設置和使用。 它也很好,因為你也可以用它做相對復雜的事情,比如將它連接到 Apache 並使用 SSL 或將它插入 Trac 進行項目管理。 Subversion 有很多可用的工具,它確實是一個不錯的選擇。

GIT 對於在分布式環境中工作的大型團隊的人來說更有用。 Linus T. 為 Linux 團隊開發了它,因為他對傳統存儲庫的功能不滿意。 如果您打算與開源項目的人一起工作,那么非常值得學習。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM