集中式版本控制工具
CVS、SVN(Subversion)、VSS....
集中化的版本控制系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新
优点
每个人都可以在一定程度上看到项目其他人正在做些什么,管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统要更加容易
缺点
中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,就无法协同工作
分布式版本控制工具
Git、Mereurial、Bazaar、Darcs...
像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整的镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地库进行恢复。因为每个哭护短的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷
- 服务器断网的情况下也可以进行开发(因为版本控制式在本地进行的)
- 每个客户端八寸的也都是整个完整的项目(包含历史记录,更加安全)
Git历史
L大神花了两周开发出Git,花了两周测试,共一个月...。
Git工作机制
Git有三块
- 工作区 写代码,代码的存放目录(可以删除)
- 暂存区 临时存储(可以删除)
- 本地库 历史版本,无法删除 (只能删库跑路...)
Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
局域网
GitLab
互联网
GitHub(外网)
Gitee(国内网站)
常用命令
| 命令名称 | 作用 |
|---|---|
| git config --global user.name 用户名 | 设置用户签名 |
| git config --global user.email 邮箱 | 设置用户签名 |
| git init | 初始化本地库 |
| git status | 查看本地库状态 |
| git add 文件名 | 添加到暂存区 |
| git commit -m "日志信息" 文件名 | 提交到本地库 |
| git reflog | 查看版本记录 |
| git log | 查看详细日志 |
| git reset --hard 版本号 | 版本穿梭 |
分支的操作
| 命令名称 | 作用 |
|---|---|
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支 |
| git checkout 分支名 | 切换分支 |
| git merge 分支名 | 把指定的分支合并到当前分支上 |
要切换到master分支再执行分支和并