一個人寫程序,版本控制用svn還是git?

平時工作需要,會寫些小程序,長則幾百行,短則幾十行,用啥版本控制軟體比較好呢?理由?


既然是工作需要,那一般都是非公開項目了。

非公開

  1. @vczh 輪子哥推薦的tfs http://tfs.visualstudio.com/ git/tfs

  2. https://bitbucket.org/ 可以免費創建私人項目(可多人協作) git
  3. Create, review and deploy code together gitlab多謝 @oldsharp 提醒 git

公開的

  1. CodePlex - Open Source Project Hosting(微軟出品) svn
  2. GitHub · Build software better, together. 廣大碼農都在用 git

git的客戶端的話,推薦使用Free Mercurial and Git Client for Windows and Mac,十分適合輕量級使用


http://tfs.visualstudio.com,可以選TFS或git,都有private repo,而且只有你一個人用的話,永遠不用錢。


直接git不用服務端。需要備份的時候直接push


Git吧,如果要服務端,可以用Github,管理個人項目


Git

------------------編輯的分割線

另外雖然大家推薦的gitosys和gitlab很好用,但是最簡單的架遠端repo的方法是你在遠程機器上直接git init --bare然後你本地把對方的ssh地址添加到remote里就能用了。

那些建伺服器的工具主要是為了多人合作的,一個人用的話沒有什麼比git init --bare更省事的了。


git 可以掛私人項目到oschina,很好的配套issues wiki MD支持等,還可以配套團隊管理工具作為自己一些思路的管理擴展。怕麻煩直接gitstack本地搭建一個伺服器,非常方便。 感覺svn更適合無分支的管理,自己的東西 隨便幾個bug都做分支出來單獨解決,能形成很好的知識庫,方便以後查詢。


git

1. 功能更強大, 如果只是簡單使用, 學會 git add, git commit兩個命令就好了, 如果還要遠程備份就是git push, 使用github的話每一步都有說明

2. 不一定非要服務端

3. 服務端環境也很好搭建, gitosis, 如果不嫌麻煩搭建個gitlab都可以, 如果代碼可以公開github就好了

4. 還有簡單使用直接命令行就好了, 當然可視化工具也很多, 官網就有介紹

5. 網上資料多


個人覺得,只是一個人用的話 git 和 svn 沒有太大區別(git 最大好處不就在於各種非線性分支各種分散式管理么?一個人的話只要不是精分都不會特別糾結這些問題)。感覺 svn 在 windows 平台下更好用一些,但熟悉了其實都不是問題。擔心 github 開源問題的話還有 bitbucket 支持 private git repo,也可以本地建 git. 所以真的是喜歡哪個用熟悉了就好……

如果為將來可能的合作需求等考慮的話,我個人比較建議用 git, 在 bitbucket 上。五人以內的 private repo 免費,而且隨時可以把 repo 轉成公開的。


肯定git啊


喜歡 Mercurial,TortoiseHG 是真的好用。

就是沒幾個託管網站……


對啊。一個人寫程序。沒有人替你打工。沒有人替你幹活。那你打算從 github 上面 clone 了代碼下來以後還要自己往 svn 里導啊?


我去,SVN怎麼你們了?看不起SVN么?http://code.taobao.org不是可以創建私人項目么?不相信阿里雲么?


用git吧 remote repo 推薦用bitbucket 這樣就不用花錢買private repo了,而且和Jira 等issue tracking整合的非常好.


個人的話,建議用git或者Mercurial(Hg),git首推,支持的公共託管不少。

git不用急需部署代碼託管伺服器,因此可以離線操作。分支處理效率好。相對於SVN的話。

SVN太重了,而且需要部署中心伺服器,是能提供詳細的許可權管理,但是這是企業才需要的,個人反而並不迫切。

git的公共託管站有不少,很多人都有介紹的,如:

Github,最著名的Git公共託管(和程序猿社交)網站

bitbuckit,有提供免費私有Repo(五人以內操作),支持Mercurial,如果不想將自己的劣作公布出去的話,bitbuckit的私有庫可以考慮。


如果你不需要上傳,則拿個git管理,git有個好處是不需要有服務端。

如果你需要上傳,而且經常涉及超大文件,則使用svn管理。


公司用啥,你就用啥。全公司的代碼都放到集中的倉庫存儲。

你寫了程序,要及時交付,給後來人維護才是最重要的是吧?

所以無所謂GIT還是SVN,能完成版本交付和持續維護才是重中之重。


代碼伺服器放遠程的用git好點。git可以先本地先commit了。再需要的時候才PUSH到遠程。

如果伺服器是本地的可以SVNl。只要提交就可以。不用push的動作。省點事。


git,這個東西可以提升逼格; SVN好上手,就是分分鐘上手的事兒


Git,國內有不錯的託管啊Git@OSC代碼託管,我的個人項目都在上面


已刪除


推薦閱讀:

用 Git 一定要用命令行嗎?用命令行一定高貴嗎?
git合併分支,為什麼會比svn容易?
git: 為什麼 pull request 不叫 push request ?
github上有哪些好的C開源項目?
git本地倉庫關聯多個remote,怎麼用本地一個分支向不同remote不同分支推送代碼?

TAG:程序員 | 編程 | Git | SVNSubversion | 版本控制 |