軟件版本管理選用哪個工具好?

碎在揚花裡的文字


什麼是版本控制

版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統。簡單來說,版本控制類似有一個程序源碼管理員,它主要工作是根據程序員的代碼提交記錄,記住每次提交新增的文件跟修改的文件, 每個被允許的成員都可以從管理員處獲得最新程序源碼,也可以獲取到以前某一次修改過的程序源碼。

版本控制工具工具

版本控制工具有SVN、VSS、GIT、Hg、CVS等,主要在用的有svn與Git。Git用的更廣泛。

SVN

SVN是Subversion的簡稱,目前是Apache項目底下的一個開放源代碼的版本控制系統,它的設計目標就是取代CVS。

優點

1、集中式管理,管理方式在服務端配置好,客戶端只需要同步提交即可,使用方便,操作簡單,很容易就可以上手。

2、在服務端統一控制好訪問權限,利用代碼的安全管理。

3、所有的代碼已服務端為準,代碼一致性高。

缺點

1、所有操作都需要通過服務端進行同步,這會導致服務器性能要求比較高。如果服務器宕機了就無法提交代碼了。

2、分支管理不靈活,svn分支是一個完整的目錄,且這個目錄擁有完整的實際文件,這些操作都是在服務端進行同步的,不是本地化操作,如果要刪除分之,也是需要將遠程的分支進行刪除,這會導致大家都得同步。

3、需要聯網。如果無法連接到SVN服務器,就無法提交自己的代碼,更別說還原、對比等操作了。如果在內網還好,網速比較穩定,同步相對比較快,如果是通過外網同步,有可能就需要同步很久。

Git

git是Linus Trovalds大神的作品,是一個開放源碼的版本控制軟件。與SVN最大的區別,就是分佈式的管理。

優點

1、分佈式開發時,可以git clone克隆一個本地版本,然後在本地進行操作提交,本地可以完成一個完整的版本控制。在發佈的時候,使用git push來推送到遠程即可。

2、git分支的本質是一個指向提交快照的指針,速度快、靈活,分支之間可以任意切換。都可以在本地進行操作可以不同步到遠程。

3、衝突解決,多人開發很容易就會出現衝突,可以先pull遠程到本地,然後在本地合併一下分支,解決好衝突,在push到遠程即可。

4、離線工作,如果git服務器出現問題,也可以在本地進行切換分支的操作,等聯網後再提交、合併等操作。

缺點

1、git沒有嚴格的權限控制,一般是通過系統設置文件的讀寫權限來做權限控制。

2、工作目錄只能是整個目錄,而svn可以單獨checkout某個有權限的目錄。

3、git上手可能沒有svn那邊順手,需要經過學習一下。

選那個版本

具體選哪個版本大家可以自行判斷,相對來說svn比較簡單,Git比較複雜。我本人以前一直用svn,一直感覺不錯。後來換Git主要是大部分開發者在用Git,這個你看github與碼雲就能知道,在這裡推薦一個非常好的Git管理工具,就是Github的桌面軟件github desktop。這個工具是依託Github,簡單易上手。如果你選擇使用碼雲託管代碼,可以使用碼雲同步Github代碼的功能,依然使用github desktop。

以下是github desktop截圖


不會修電腦的技術宅


現在一般使用git更多一點。如果沒有特殊需求,那就git吧。


分享到:


相關文章: