# 代码托管服务
当你想要分享你代码给其他人,或者是你需要在另外一台电脑上工作时,托管代码就会是一个非常重要的话题。基本上代码托管有两种不同的形式: 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