大纲
- 版本控制系统
- 分支模型
- Git
- Git 命令
- Git命令详解
1. 版本控制系统VCS
- 版本控制系统VCS(Version Control System)是一种记录若干文件的修订记录的系统,它帮助我们查阅或回到某个历史版本。
- VCS分类:
- “人肉”VCS:即无版本控制系统,靠开发者自己。
叫人崩溃。
- LVCS 本地式 ------- Local
不能解决协同开发的问题。
- CVCS 集中式 ------- Cluster
SVN: if 中央版本控制出错。网络请求、单点故障
- DVCS 分布式 ------- Distribution
Git
2. 分支模型
- 分支:从目标仓库获得一份项目拷贝,每条拷贝都有和原仓库功能一样的开发线。
- 分支模型(branching model)/工作流(workflow):一个围绕项目[开发、部署、测试]等工作流的分支操作(创建、合并等)规范集合。
- 环境分类:
- 开发环境:跟随测试开发的配置
- 测试环境:跟随测试的配置
- 预发布环境:小范围线上配置
- 生产环境:线上配置 :master分支
3. Git
- Git是什么?
Git是一个免费开源的分布式版本控制系统(DVCS)
Git是一个基于内容寻址
的存储系统
- 优势?
快
完全的分布式
轻量级的分支操作
Git已经成为现实意义上的标准
社区成熟活跃 (Git != github)
- 安装
win、linux、mac
4. Git命令详解
存在数以百计的命令。
git help
- git config
- 用户配置
-
- git config – global user.name “John EveryThing”
-
- git config – global user.email test@example.com
- 配置级别
- -> --local 【默认,高优先级】:只影响本仓库 .git/config
- -> --global【中优先级】:影响到所有当前用户的git仓库 ~/.gitconfig
- -> --system【低优先级】:影响到全系统的git仓库 /etc/gitconfig
- git init
初始化仓库
- git status
对状态的跟踪
内容状态:工作目录—暂存区----提交区
文件状态:未跟踪—已跟踪
- git rm
移除
- git commit
完成命令的提交
将暂存区的命令提交到提交区
- git commit-a
直接提交到提交区
- git log
显示提交历史信息
- git diff
显示不同提交版本的差异
命令,状态转换:
reset VS checkout
命令 | 范例 | 移动(head/branch) | 说明 |
---|---|---|---|
git reset [commit] | git reset HEAD – soft | 是/是 | 完全回退到某提交 |
git reset [file] | git reset README.md | 否/否 | 恢复暂存区到某提交状态 |
git checkout [commit] | git checkout master | 是/否 | 移动当前指针HEAD到某提交 |
git cheackout [file] | git checkout – README.md | 否/否 | 恢复工作目录到某状态 |