# 代碼托管服務
當你想要分享你代碼給其他人,或者是你需要在另外一臺電腦上工作時,托管代碼就會是一個非常重要的話題。基本上代碼托管有兩種不同的形式: do-it-yourself(建立一個自己的)或者 leave-me-in-peace(使用第三方提供的平臺,不麻煩自己)。
## (A) Do-It-Yourself
把你的 Git 倉庫托管在你自己的服務器上會有很多的優點:
* 可以節省你花在代碼托管服務上的費用。
* 你的代碼只保存在你自己的服務器內部。
* 你會有很多自由發揮的空間。
當然這里也存在一些缺點:
* 你必須要保證服務器的正常的運行時間,用以確保它的可用性。
* 你必須要負責進行備份工作(這是一個非常重要且繁瑣的工作)。
* 你必須要負責它的安全維護和更新。
最后,托管代碼的最艱巨的任務并不是去管理那些 Git 倉庫,而是對服務器本身的管理和維護。不要誤會我的意思,我的本意并不是 “不要自己托管自己代碼,而去使用一個現成代碼托管服務”。我的本意是 “讓你明白代碼托管的真正含義”。
如果你有足夠的經驗和能力去完成它,那么托管你的代碼倉庫到你自己的服務器上會是最好的選擇!
## (B) Leave-Me-In-Peace
對于大多數人來說,他們并不具備維護服務器的能力。雖然很多人都或多或少的地掌握一些理論上的知識,但是這還遠遠談不上精通。
現在你可以找到幾十個專門的代碼托管服務供應商,它們可以為你提供比如服務器管理,備份,安全維護等等全方位的服務。為了讓你能快速地了解這方面的信息,我們為你整理出了一個簡短的列表。
### GitHub [www.github.com](http://www.github.com)
GitHub 是在 Git 的世界中最流行的代碼托管服務。特別是對于開源項目, GitHub 是最值得推薦的平臺。
### Beanstalk [www.beanstalkapp.com](http://www.beanstalkapp.com)
Beanstalk 不僅僅提供 Git 倉庫的托管,而且它還支持 Subversion 項目。作為一個非常精簡和可靠的服務供應商,Beanstalk 是企業級用戶的最佳選擇。
### Bitbucket [www.bitbucket.com](http://www.bitbucket.com)
除了對 Git 倉庫支持外, Bitbucket 也同時支持對 Mercurial VCS 的托管。它有著和 GitHub 平臺很類似的功能,但是在開放源代碼世界中它并不像 GitHub 那樣受歡迎。
### Plan.io [www.plan.io](http://www.plan.io)
Plan.io 提供了一個完整的項目管理平臺。除了支持對 Git 和 Subversion 的代碼托管之外,它還提供了模塊化的任務管理,客戶服務支持,甚至還集成了Wiki。
- Learn Version Control with Git 中文版
- 前言
- Part 1 - 基礎知識
- 什么是版本控制?
- 為什么要使用版本控制系統?
- 準備工作
- 版本控制的基本工作流程
- 從一個未被納入版本控制的項目開始
- 從一個已被納入版本控制的項目開始
- 工作在你的項目上
- Part 2 - 分支與合并
- 分支可以改變你的生命
- 在分支上工作
- 暫時保存更改
- 切換一個本地分支
- 合并改動
- 分支的工作流程
- Part 3 - 遠程倉庫
- 關于遠程倉庫
- 連接一個遠程倉庫
- 查看遠程數據
- 整合遠程的改動
- 發布一個本地分支
- 刪除分支
- Part 4 - 高級應用
- 撤銷操作
- 用 diff 來檢查改動
- 處理合并沖突
- Rebase 代替合并
- 子模塊
- git-flow 的工作流程
- 使用 SSH 公鑰驗證
- Part 5 - 工具與服務
- 桌面應用程序
- 比較和整合工具
- 代碼托管服務
- 更多學習資源
- 附錄
- 版本控制的最佳實踐
- 命令 101
- 從 Subversion 過渡到 Git
- 為什么選擇 Git