这是我参与「第三届青训营 -后端场」笔记创作活动的第3篇笔记。
分布式版本控制
代表性工具:Git
基本原理:
1.每个库都有完整的提交历史;
2.每次提交记录都是完整的文件快照,而不是记录增量;
3.通过Push等操作来完成和远端代码的同步。
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 的区别:
- 1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
- 2、Git 把内容按元数据方式存储,而 SVN 是按文件: 所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
- 3、Git 分支和 SVN 的分支不同: 分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
- 4、Git 没有一个全局的版本号,而 SVN 有: 目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
- 5、Git 的内容完整性要优于 SVN: Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
使用 git init 命令来初始化一个 Git 仓库
$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'
我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。
git的几个区域:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
简单步骤
$ git init
$ git add .
$ git commit
通过git status查看状态。
git add * 添加到本地仓库
git commit -m "test" 提交
git分支管理:
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
合并分支命令
git merge