# 前言
## 关于专业
怎样才能称之为专业人员?是取决你对专业知识掌握的多少吗?是取决你对问题的理解能力吗?当然这些都是,但是这些都仅仅是片面的理解。
作为一个专业人员要学会使用一个正确的工具和培养一个良好的习惯。例如:一个五星级厨师不可能使用廉价的厨具来烹饪佳肴,因为他知道工欲善其事,必先利其器。同样的,一个顶尖的职业网球选手也不可能从来不进行耐力训练,因为他知道一个非常简单的道理,那就是打网球不仅仅只是击球过网这么简单。
同样道理,一个顶级的程序员,网络开发人员或网页设计师,他不可能从不使用版本控制,因为他知道在开发过程中犯错是在所难免的,他也知道在团队合作中如果不进行安全,简单有效的协作与沟通,而只是草草敷衍或者不紧密合作,在之后的开发阶段中将要花费更多的时间和精力。
不要介意去花费一点点时间来学习版本控制。它将帮助你在专业之路上迈出一大步。
## 关于这本书
学习这本书的目的是让你了解版本控制,并且尽可能快速简单的掌握 Git。但是和另外一些关于介绍版本控制的图书不一样,阅读这本书并不需要你有很专业的 IT 或者电脑背景知识,它也面向那些编程的初学者,软件构架师,或者是项目经理。在技术方面你也不需要有很多专业知识,我们会以循序渐进的方式帮助你来理解版本控制和掌握 Git。
话虽如此,Git和版本控制终归还是非常复杂且具有高度的技术性的。我不能保证非常全面的阐述其中的每一个原理,但是我将尽可能的向你解释和分析那些在实际应用中可能出现的案例,可能会被使用到的工作流程和相关的知识背景。
因为每个人都有他自己的专业背景,所以很难为每一个读者定义一个共同的出发点,出于这个原因,在本书的附录中我们会提供了一些基础知识的相关文档。
* 如果你不能确定是否要使用 Git 作为你的版本控制系统,你可以尝试阅读一下。[为什么选择 Git?](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/why-git)
* 如果你在考虑是否从 SVN 中解放出来,那么在这里 [从 Subversion 过渡到 Git](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/from-subversion-to-git) 你可以找到一些有用的帮助,它会给你列举出这两种版本控制系统间的差别。
* 如果你需要了解一些关于 Git 命令界面的操作,那么你一定要看看这个 [命令 101](https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/command-line-101)。
祝你愉快的学习 Git!
- Learn Version Control with Git 中文版
- 前言
- Part 1 - 基础知识
- 什么是版本控制?
- 为什么要使用版本控制系统?
- 准备工作
- 版本控制的基本工作流程
- 从一个未被纳入版本控制的项目开始
- 从一个已被纳入版本控制的项目开始
- 工作在你的项目上
- Part 2 - 分支与合并
- 分支可以改变你的生命
- 在分支上工作
- 暂时保存更改
- 切换一个本地分支
- 合并改动
- 分支的工作流程
- Part 3 - 远程仓库
- 关于远程仓库
- 连接一个远程仓库
- 查看远程数据
- 整合远程的改动
- 发布一个本地分支
- 删除分支
- Part 4 - 高级应用
- 撤销操作
- 用 diff 来检查改动
- 处理合并冲突
- Rebase 代替合并
- 子模块
- git-flow 的工作流程
- 使用 SSH 公钥验证
- Part 5 - 工具与服务
- 桌面应用程序
- 比较和整合工具
- 代码托管服务
- 更多学习资源
- 附录
- 版本控制的最佳实践
- 命令 101
- 从 Subversion 过渡到 Git
- 为什么选择 Git