大致流程
图 001
代码只允许增量修改
不允许强制提交
master
该项目的管理者
研发者名称
+ /
+ 分支性质
+ /
+ 功能名【单词之间以下划线分隔】 + _
+ 年月日时分
使用该分支的研发人员的英文名或者中文拼音
如 yuntianhe
feature
新功能的分支
hotfix
线上问题修复的分支
yuntianhe/feature/oauth2_optimise_201911051146
yuntianhe/hotfix/fixbug_of_oauth2_optimise_201911051150
该项目的管理者、开发者
比如我当前公司项目的开发目录,如下
www-data@online:~/site$ ls
admin.puppeteer.hlzblog.top api_iot.hlzblog.top mall.hlzblog.top puppeteer.hlzblog.top secrect.hlzblog.top www.hlzblog.top
需要对该目录下的所有git
项目设置身份为自己在公司的职员信息
考虑会引入新的项目
所以我在这里写了一个批量更新脚本auto_git_config.sh
#!/bin/bash
echo "---------正在配置目录git用户信息---------"
user_name="云天河" # TODO 自己在公司内的名称
user_email="yuntianhe@staff.hlzblog.top" # TODO 自己在公司内的邮箱
for dir in $(ls ./)
do
#echo "当前 ${dir} ---"
if [ -d $dir"/.git" ];then
# 进入目录
cd $dir
# 配置公司内的 git
git config user.name ${user_name} # 配置git 用户名
git config user.email ${user_email} # 配置git 邮箱
# 返回上层
echo "配置项目\t${dir}"
cd ..
fi
done
echo "---------配置结束---------"
将其放到对应目录下
www-data@online:~/site$ ls
auto_git_config.sh admin.puppeteer.hlzblog.top api_iot.hlzblog.top mall.hlzblog.top puppeteer.hlzblog.top secrect.hlzblog.top www.hlzblog.top
执行这个脚本即可
结果如下
www-data@online:~/site$ sh ./auto_git_config.sh
---------正在配置目录git用户信息---------
配置项目 admin.puppeteer.hlzblog.top
配置项目 api_iot.hlzblog.top
配置项目 mall.hlzblog.top
配置项目 puppeteer.hlzblog.top
配置项目 secrect.hlzblog.top
配置项目 www.hlzblog.top
---------配置结束---------
Step 1
依据分支规范
创建一个远程功能分支,如
yuntianhe/feature/oauth2_optimise_201911051146
推送的前提是
产品线负责人已经允许你推送这个分支了
是不允许随便上传线上的分支的
推送到云端
命令示例
git fetch
git checkout -b yuntianhe/feature/oauth2_optimise_201911051146 origin/master
git push origin yuntianhe/feature/oauth2_optimise_201911051146
Step 2
创建本地研发分支
此分支不允许推到线上
仅供本地研发用
命令示例
git fetch
git checkout -b local-yuntianhe/feature/oauth2_optimise_201911051146 origin/yuntianhe/feature/oauth2_optimise_201911051146
Step 3
每次在local-yuntianhe/feature/oauth2_optimise_201911051146
开发完一部分功能后
a.准备写注释前,需要先检查一遍本次的改动文件有没错了的
git status
b.仔细看看本次的改动细节
git diff
如果你不小心先执行了 git add -A
了,那就使用
git diff HEAD
如果发现有部分不想带上去的代码也被 git add -A
了
你可以通过
git reset HEAD
回到 git add
前的代码状态
c.确认了本次变动后,加入版本注释
git add -A
git commit -m '这里是注释内容'
如果注释内容比较多,可以执行 git commit -a
进入编辑器
关于编辑器的选择,可以进行配置为 vi
或者 vim
git config core.editor "vim"
Step 4
合并这部分功能,到功能分支,推送到云端
git fetch
git checkout yuntianhe/feature/oauth2_optimise_201911051146
git merge origin/yuntianhe/feature/oauth2_optimise_201911051146
git merge local-yuntianhe/feature/oauth2_optimise_201911051146
git push origin yuntianhe/feature/oauth2_optimise_201911051146
研发完成后,先自测功能,然后准备打包给测试同学
Step 5
首先明白什么是打包
打包就是让人容易记住的有意义的名字
它跟某个commit
号绑在一起
常见的几套环境及其释义,如,图 002
图 002
本次我们主要涉及 test
、production
环境
研发同学交付到测试同学的包
用于测试( test
)环境
test_
+ 年月日时分
test_201910091315
查看当前所有打过的包及其备注
git fetch
git tag -ln
git tag test_201910091315
git tag -d test_201910091315
git push origin test_201910091315
git push origin --delete test_201910091315
测试同学把包拉到测试环境使用
git fetch
git checkout test_201910091315
测试同学交付到产品线负责人的包
用于预发布(pre
)环境或者生产(production
)环境的包
online_
+ 年月日时分
online_201910091445
运维同学书写自动化发布脚本时使用
git fetch
git checkout online_201910091445
图 003
为了方便我们通过 git log
查看版本号
我们需要全局配置一下
git config --global log.decorate true
如果发现上线的包有问题
可以尝试立马切换到上一个没有问题的包上去
如果好几个包都有问题
而且这些包都是后端同学的包
我们应该对有问题的代码部分
做接口暂停访问的相关处理
如果有一个BUG
测试同学没有测试到
但是已经上线了一段时间了
对公司收入造成了一定影响
这时候就会追责了
有一个优化券兑换码,为了方便测试,可以被无限使用,然后被带到了线上
我们去看看代码里面是谁加的这几行代码
例如: 我们经过代码追溯
查看到文件app/Http/Controllers/Operation/CouponApiController.php
被人改过
然后我们通过 git blame 文件路径
git blame app/Http/Controllers/Operation/CouponApiController.php
翻到对应的行数就可以指定那几行代码是谁改的了
图 004
评论列表点此评论