Git保存用户名密码
git config credential.helper store
Git分支批量清理
本地分支
git branch | grep -E feature\/(1\.|activity|btn_s|refresh|share|3\.1)|xargs git branch -D
git branch | grep -E develop\/(test|script_inline|egg3|3\.1)|xargs git branch -D
git branch | grep -E release\/|xargs git branch -D
// -v 取反
git branch | grep -v 'master\|feature\/benchmark\|feature\/async-component'
// 取反删除
git branch | grep -v 'master\|feature\/benchmark\|feature\/async-component'|xargs git branch -D
远程分支
// 查找取反显示
git branch -r| grep -v 'master\|feature\/benchmark\|feature\/async-component'
git branch -r | grep -v 'master\|feature\/benchmark\|feature\/async-component' | awk '{print $1}'
// 查找取反
git branch -r| grep -v 'master\|feature\/benchmark\|feature\/async-component\|develop\/stearmrender'
// 查找
git branch -r| grep -E 'master|feature\/benchmark|feature\/async-component|develop\/stearmrender'
// 筛选远程分支
git branch -r| awk -F '[/]' '/release|hotfix/ {printf "%s/%s\n",$2,$3}'
// 删除远程分支
git branch -r| awk -F '[/]' '/release|hotfix/ {printf "%s/%s\n",$2,$3}'|xargs -i {} git push origin :{}
git branch -r |awk -F '[/]' '/(master|feature\/benchmark|feature\/async-component)/ {printf "%s/%s/%s\n", $2,$3,$4}'
git branch -r |awk -F '[/]' '/(master|feature\/benchmark|feature\/async-component)/ {printf "%s/%s/%s\n", $2,$3,$4}' |xargs -I {} git push origin :{}
// 终极取反筛选查找
git branch -r| grep -v 'master\|feature\/benchmark\|feature\/async-component\|develop\/stearmrender'|awk -F '[/]' '/\// {printf "%s/%s\n", $2,$3}'
// 终极取反筛选查找删除
git branch -r| grep -v 'master\|feature\/benchmark\|feature\/async-component\|develop\/stearmrender'|awk -F '[/]' '/\// {printf "%s/%s\n", $2,$3}' |xargs -I {} git push origin :{}
// 运行git fetch -p 同步最新远程分支
curl
curl -Lo /dev/null -skw “time_connect: %{time_connect} s\ntime_namelookup: %{time_namelookup} s\ntime_pretransfer: %{time_pretransfer} s\ntime_starttransfer: %{time_starttransfer} s\ntime_redirect: %{time_redirect} s\nspeed_download: %{speed_download} B/s\ntime_total: %{time_total} s\n\n”
git commit 规范
(1)type
提交 commit 的类型,包括以下几种
- feat: 新功能
- fix: 修复问题
- docs: 修改文档
- style: 修改代码格式,不影响代码逻辑
- refactor: 重构代码,理论上不影响现有功能
- perf: 提升性能
- test: 增加修改测试用例
- chore: 修改工具相关(包括但不限于文档、代码生成等)
- deps: 升级依赖
(2)scope 修改文件的范围(包括但不限于 doc, middleware, proxy, core, config, plugin)
(3)subject 用一句话清楚的描述这次提交做了什么
changelog
brew install git-extras
git-extras 命令生成 changelog 和 release 自动打 tag & push & trigger hook
$ git changelog # 需要修改 Histroy.md 和 package.json 的版本号,如需要发布 1.0.0 $ git release 1.0.0
提交规范实例:git commit -m ’fix($guild): solve bugs’
如果一个包发布在 NPM / TNPM 中,可以快速修改其package.json版本号。会自动触发一个 git 提交。
-
递增一个修订号 npm version patch
-
递增一个次版本号 npm version minor
-
递增一个主版本号 npm version major
merge request
合并commit message
git rebase -i HEAD~3
- pick
- edit
- squash
https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2
修复问题发布一个npm版本
- checkout new branch
- 修改代码,提交 git commit -m ’fix($guild): solve bugs’
- git changelog 需要修改 Histroy.md 和 package.json 的版本号,如需要发布 1.0.0
- npm version patch 升级一个小版本
- git release 1.0.0 (自动打 tag & push & trigger hook)
- npm publish 发布一个版本