大厂git工作流程

279 阅读2分钟

1、迁出代码

git clone git地址

2、开发预准备

# 克隆release到本地
git fetch origin release:release
# 选中release分支(创建分支会基于本分支创建)
git checkout release

3、创建我们需要的开发分支

这里我推荐大家通过你所正在开发的任务创建分支,不要什么东西都在一个分支上面编写

# 根据release创建feat-0131-jie分支,并选中()
git checkout -b release feat-0131-jie # 这个分支就是我们准备开发的分支了

备注

分支命名,推荐格式:分支责任-需求日期/需求号-开发人姓名

- feat:新功能 
- fix:修补bug 
- doc:文档 
- refactor:重构(既不是新增功能,也不是修改bug的代码变动)
- test:测试 
- chore:构建过程或辅助工具的变动

4、开发中遇到的问题

如果我们现在需要紧急插一个任务,暂停当前任务去开发其他任务。这个时候如果我们直接切换过去,那么我们未提交的记录都会一并带去我们所切换的分支中。那么,这个时候提交就会造成代码的混乱,或是无法编译通过。

如何解决呢? 有两种思路

  1. 直接add+commit将本地未提交代码全部提交到我们本地的分支中
  2. 如果我们不想提交到本地分支中怎么办呢?
使用 git stash 命令
这个命令其实就是将我们本地未提交的代码给放入缓存区暂存起来

# 这个时候就会把我们本地的代码给放入到暂存储去中存储起来了,在我们本地看来就是之前开发代码都回退了
> git stash
# 查看我们暂存起来的提交信息
> git stash list
> stash@{0} XXX:XXX # stash@{0}就是暂存信息的名称
# 恢复指定的暂存提交
> git stash apply [暂存信息名称]
# 删除指定的暂存提交
> git stash drop [暂存信息名称]

如果我们stash apply错了产生了冲突,这个时候我们使用
# 回退apply
> git reset --hard

5、开发完成提交代码

git add .
git commit -m "提交描述"

5.1、方式一

推荐方式, 将自己的分支提交线上合并

git push feat-0131-jie

5.2、方式二

选择拉取你要合并提交的分支

# 如果没有分支就先拉取
git fetch origin test:test
# 选中需要的分支
git checkout test 
# 然后将自己的分支合并到环境分支上(在编辑器解决冲突) 
git merge feat-0131-jie 
# 最后将环境分支推送到远程仓库 
git push origin test

6、完成

# 删除本地分支
git branch -d feat-0131-jie
# 强制删除本地分支
git branch -D feat-0131-jie

学习于JIE的《大厂真实 Git 开发工作流程》