Git

Posted by Liber Sun on January 10, 2019

Vesion Controll

1. 闲言

在学校里面写的项目,开发不过两三个人,使用Git也只是简单使用其提供的代码协作功能,并且这个项目往往是:没有持久性、一次性开发的,完全没有运用到Git的分支模型。 还记得那个时候师兄给我说的,一个master分支,先pull,解决冲突,再push。 但是在企业中,一个应用的开发往往具有较长的生命线,需要进行迭代开发,并且需要解决几十个人的代码协作问题。这就要求一套完整的规范的代码开发流程。

2. 什么是Git

Git是一款分布式代码版本控制系统。 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 除了项目源代码,你可以对任何类型的文件进行版本控制。 那么我们为什么需要版本控制?有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。

2.1 常用指令

git add readMe.md      //添加readMe.md 到暂存区
git commit -m 'readMe.md提交' // 推送暂存区中的内容到本地仓库,'readMe.md提交'是提交的注释
git diff readMe.md //查看readMe.md的变化情况
git log --pretty=oneline //查看日志
git reset -hard 版本号  //回退
git reset --hard HEAD^  //回退到上一个版本

3.远程git仓库-Github

3.1 远程常用指令

git remote add origin 远程git地址  //添加仓库
git push -u origin master        //-u 初次 将本地的master分支仓库内容推送到远程仓库中
git push origin master //推送
git clone 远程git地址 //clone

git branch dev //创建分支
git checkout dev //切换分支
git branch //列出所有分支

git merge dev //合并dev分支和当前分支的内容
git branch -d dev //删除分支dev

git pull //拉取

3.2 分支介绍

master: 生产的代码 develop:预发布到生产的代码 release:新版本发布的代码 feature:新需求开发的代码 hotfix:紧急修复生产BUG的代码

3.3 场景

  1. 新的需求->从develop分支创建feature分支
  2. 开发feature分支,并进行bug测试,修复
  3. feature分支合并到develop分支->创建release分支
  4. 在release分支进行bug测试,修复
  5. 将release分支合并到develop和master分支
  6. 上线之后出现问题,从master分支创建hotfix分支,进行紧急修复
  7. hotfix合并到develop和master分支