集中式与分布式版本控制
Git 属于分布式版本控制系统,而 SVN 属于集中式。
- 集中式版本控制
只有中心服务器拥有一份代码
有安全性问题,当中心服务器挂了所有人都没办法工作了。
需要连网才能工作,如果网速过慢,那么提交一个文件会慢的无法让人忍受。
新建一个分支相当于复制一份完整代码 - 分布式版本控制
每个人的电脑上就有一份完整的代码
不需要连网就能工作
新建分支、合并分支操作速度非常快
分布式介绍
中心服务器
中心服务器用来交换每个用户的修改,没有中心服务器也能工作,但是中心服务器能够 24 小时保持开机状态,这样就能更方便的交换修改。
Github 就是一个中心服务器。
工作流
新建一个仓库之后,当前目录就成为了工作区,工作区下有一个隐藏目录 .git,它属于 Git 的版本库。
Git 的版本库有一个称为 Stage 的暂存区以及最后的 History 版本库,History 存储所有分支信息,使用一个 HEAD 指针指向当前分支。
git add files
把文件的修改添加到暂存区git commit
把暂存区的修改提交到当前分支,提交之后暂存区就被清空了git reset -- files
使用当前分支上的修改覆盖暂存区,用来撤销最后一次 git add filesgit checkout -- files
使用暂存区的修改覆盖工作目录,用来撤销本地修改