版本控制 |青训营笔记

120 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第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