·版本控制系统
版本控制系统即VCS(version control system)是一种记录若干文件的修订记录的系统,它帮助我们查阅或回到某个历史版本。
-“人肉”VCS
-LVCS本地
·举例
-RCS(Revision Control System)
无法多人协同开发
-CVCS集中式
·举例
-CVS(Concurrent Versions System)
-SVN(Subversion)
-Perforce
中央服务器发生故障
-DVCS分布式
·举例
-Git
-Mercurial
有了VCS之后
·可以回退到某个历史版本
·查看某个历史版本
·对比两个版本的差异
·分支模型
-分支:从目标仓库获得一份项目拷贝,每条拷贝都有和原仓库功能一样的开发线。
-分支模型(branching model)/工作流(workflow)
一个围绕项目【开发/部署/测试】等工作流程的分支操作(创建,合并等)规范集合
产品级的分支模型
常驻分支
·development
-从master创建
·production(master)
-默认分支
活动分支
·feature
-从development创建
·hotfix:如hotfix-36
-从master创建
·release:如release-110
-从development分支创建
·Git
-Git介绍
·git是一个免费开源的分布式版本控制系统(DVCS)
·git是一个基于内容寻址的存储系统
优势
·快!
·完全的分布式
·轻量级的分支操作
·Git已经成为现实意义上的标准
·社区成熟活跃
安装:Windows: msysgit
-Git命令详解
git config 配置git
·用户配置
-git config --global user.name "coore"
-git config --global user.email "403276838@qq.com"
·配置级别
- --local[默认,高优先级]:只影响本仓库 (.git/config)
- --global[中优先级]:影响到所有当前用户的git仓库(~/.gitconfig)
- --system[低优先级]:影响到全系统的git仓库(/etc/gitconfig)
git init 初始化仓库
·git init [path]
·git init [path] --bare
git status:对状态的跟踪
- 未跟踪<->跟踪
- 工作目录<->暂存区
- 暂存区<->最新提交
git add 添加文件内容到暂存区(同时文件被跟踪)
gitignore 忽略文件
·在添加时忽略匹配的文件
·仅作用于未追踪的文件
git-rm从暂存区删除
·git rm --cached : 仅从暂存区删除
·git rm:从暂存区与工作目录删除
·git rm $(git ls-fils --deleted):删除所有被跟踪,但是在工作目录被删除的文件
git-commit根据暂存区内容创建一个提交记录
git log显示提交历史信息
git中的alias命令
·git config alias.shortname <fullcommand>
git diff 显示不同版本差异
·git diff:-工作目录与暂存区的差异
·git diff -cached [<reference>] - 暂存区与某次提交差异,默认为HEAD
·git diff <reference> - 工作目录与某次提交的差异
撤销本地修改git checkout --<file> 将文件内容从暂存区复制到工作目录
撤销暂存区内容git reset HEAD <file> 将文件内容从上次提交复制到暂存区
撤销全部改动git checkout HEAD --<file>将内容从上次提交复制到工作目录
分支操作
git branch 分支的增删查改都靠它
·git branch <branchName> 创建一个分支
·git branch -d <branchName> 删除指定的分支
·git branch -v 显示现在所有的分支信息
git checkout 通过移动HEAD检出版本,可用于分支切换
·git checkout <branchName> 指针直接指向目标分支
·git checkout -b <branchName> 直接创建一个分支然后切换到它
·git checkout <reference> 引用到任何引用对象上
git reset 将当前分支回退到历史某个版本
·git reset --mixed <commit>默认
·git reset --soft <commit>
·git reset --hard <commit>
使用捷径
·A^:A上的父提交
·A~n:在A之前的第n次提交
git stash 保存目前的工作目录和暂存区状态,并返回到干净的工作空间
git merge合并分支
git rebase修改提交历史基线,俗称“变基”
git rebase --onto
勿在共有分支使用rebase
git tag 对某个提交设置一个不变的别名
远程操作
Git支持本地协议,所以我们可以初始化一个本地的远程服务器
git init ~/git-server --bare
网友评论