文章目录
版本控制
历史阶段
- cvs 第一代 集中式
- svn 第二代 sub version 子版本 集中式
- git 第三代 分布式,非集中式
扩展:
- 分布式技术
- 并行机器(超级计算机)
- 集群
git 的工作流程
scm 软件配置管理
仓库:一个文件夹,git 会追踪文件夹中文件的变化,对部分文件做差异化记录
仓库三个状态
- 干净 clear
- 改变、增加 未追踪的文件
- 缓冲区
git init // 初始化仓库
git add // 将变化的内容加入缓冲区
git commit // 提交,记录改变
git status // 查看当前状态
git log // 查看日志
git checkout // 检出
git tag // 标签
git checkout id
git checkout master
git branch
git clone
tag主要用来标记历史版本,而branch可以独立地包含项目历史的一部分,是主分支分出的"平行空间"
协同开发
开放的平台
- sf.net
- github
- gitee
个人仓库
shell
mkdir code
cd code
# 初始化为仓库
git init
# 添加到缓冲区,为了提交
git add *
# 提交,存档,差异化备份存储
git commit -m "描述信息"
#
git log
# 检出,回到历史版本
git checkout id
# 标签
git tag 0.1
# 分支
git branch
# 创建分支 f1
git branch f1
# 进入分支 f1
git checkout f1
# 进入主线
git checkout master
# 把分支 f1 合并到主线
git merge f1
#
远程仓库
托管平台:github, gitee, sf, google code, gitlab
shell
# 直接创建远程仓库
# 把本地仓库分享到原创
# 克隆,把仓库从远程下载到本地
git clone url
# folk 创建仓库的一个分支
# 往本地拉取最新的提交信息,本地同步信息远程仓库的信息
git pull/fetch
# 把本地的提交同步到远程服务器
git push
# pull request
团队协同开发
- 创建组织
- 邀请成员
- 创建组织中的仓库
- 给仓库添加开发者
- 把远程仓库克隆到本地
- 进行文件编辑
- 本地提交:git add, git commit
- 同步到远程:先 pull 再 push
git rebase
git rebase 等价于
git pull --no-rebase
git push
git pull
git push