我在互联网公司怎么用git搞需求的?

339 阅读3分钟

很久没写文章,打开掘金一看,上一篇写git的辣么多人看吓到我了,再水一篇哈哈哈哈哈哈哈哈哈哈哈哈哈哈。

分支类型

一般来说,会有这几种类型的分支

  • master: 主分支
  • develop:开发分支
  • feature:功能分支
  • release:分支发布
  • hotfix: 修复分支

git开发流程

  1. 从远程develop分支checkout出本地develop分支。
  2. 从本地develop分支checkout出自己的开发本地feature分支。
  3. 在本地feature分支上进行开发,对代码进行commit,push到远程feature分支。一般来说,这条分支应该只有创建者在使用,但是也可能出现有其他开发者也对这条分支进行了提交,可以使用git pull/git pull --rebase在push之前进行更新,若有代码冲突,需要解决冲突再push。
  4. 合并本地develop,push到远程develop进行测试环境的测试。
  5. 测试环境通过后,合并到release分支上,进行预发布环境测试。
  6. 预发环境通过后,合并到master分支上发布上线。

当然,这只是一个大概的流程,并不是必须这样,每个公司都有自己的git流程,比如我司就是基于master分支checkout出自己的功能分支,然后合并到develop分支去测试,也没有所谓的release分支,测试通过后就直接合并到master上线了,但都是大同小异。

一些常用的命令

合并commit

在使用 Git作为版本控制的时候,我们可能会由于各种各样的原因提交了许多commit,比如有些是需求开发的代码的commit,有些是bug修复的commit,为了让commit看起来更加简洁,还有方便出问题之后快速回滚,可以将考虑多个commit合成一个。 可以使用git命令行合并commit,但是我不会哈哈哈,我搜了一下大佬们的相关文章,很多都写的很详细了,比如这个,不过感觉步骤还是比较多,比较麻烦。 我个人习惯用idea合并commit,但是我发现网上几乎都是旧版idea合并commit的方法,步骤也不少,看着也烦,机缘巧合,我搜到了2021.3版本idea简化了合并commit的步骤,傻瓜式合并,简直不要太爽,强推! image.png 下面给大家演示一下: 首先要选中所有需要合并的commit 企业微信截图_20211126160930.png 然后右键点Squash Commit,弹出来框的意思是让你重填一个commit message 企业微信截图_20211126161007.png

合并分支

git开发流程,我有写到一个出现频率很高的词--合并,合并这个操作,可以是同一条分支的本地分支和远程分支之前的合并,也可以是不同本地分支之前的合并。合并的方式主要有两种,rebase和merge,区别就在于在产生冲突时,是否会生成新的提交。 具体可以看看我这篇文章

cherry-pick

比如有两条差别非常大的分支,想要把其中一条的commit转移到另一条分支,rebase和merge就都不适用了,可以采用git cherry-pick,比如idea里可以这样用: 选中commit,点击按钮,就会将develop的commit pick到当前的分支中 企业微信截图_20211126161158.png

git bash VS idea

究竟用git命令行还是idea点点点来使用git进行开发,我觉得是看个人习惯,各有优势,不用太纠结,可以自己都试一下,怎么开心怎么来哈哈哈