git commit 规范
HEADER
type(必填) + scpe(选填) + subject(必填)
type
-
feat:新功能(feature)
-
fix:修补bug
-
docs:文档(documentation)
-
perf: 性能优化
-
style: 格式(不影响代码运行的变动)
-
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
-
test:增加测试
-
chore:构建过程或辅助工具的变动 feat新功能feat: 添加新功能fix修复fix: 修改bugdocs文档变更docs: 更新文档style代码样式变更style: 修改样式refactor重构refactor: 重构代码perf性能优化perf: 优化了性能test增加测试test: 单元测试revert回退revert: 回退代码build打包build: 打包代码chore构建过程或辅助工具的变动chore: 修改构建
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
git tag
- 使用git tag命令跟上tag名字,直接创建一个tag
git tag v1.0
- 使用git tag命令可以看到新增加的tag。
// 查看tag 及信息
git tag -l -n
- 还可以加上-a参数来创建一个带备注的tag,备注信息由-m指定。如果你未传入-m则创建过程系统会自动为你打开编辑器让你填写备注信息。
git tag -a v1.1.1 -m "my tag"
- git show命令可以查看tag的详细信息,包括commit号等。
git show tagName
- 将tag同步到远程服务器
git push origin v1.0
git push origin --tags // 推送本地所以的tag
- 切换到某个tag 跟分支一样,可以直接切换到某个tag去。这个时候不位于任何分支,处于游离状态,可以考虑基于这个tag创建一个分支。
git checkout v1.0.0
- 删除tag
// 本地删除
git tag -d v1.1.1
// 远端删除
git push origin :refs/tags/v0.1.2
git log
- 保存到一个文件中
git log > log.txt
- 保存详细修改方法
git log -p > log.txt
- 过滤某个人的修改方法
git log --author user > log.txt
- 过滤某个人的详细修改方法
git log --author user -p > log.txt
- 简约的log记录
git log --oneline
- 导出范围内的log
git log 268293e..13c6849 -p > log.txt
git log v1.2.1..HEAD -p > log.txt // 1.2.1 到当前的log日志
git log --since="5 day ago" -p > log.txt // 五天前的log日志
- 中文乱码
// 到Git Bash命令窗口输入如下设置命令语句
git config --global i18n.commitencoding utf-8 // 该命令表示提交命令的时候使用utf-8编码集提交
git config --global i18n.logoutputencoding utf-8 // 该命令表示日志输出时使用utf-8编码集显示
export LESSCHARSET=utf-8 // 设置LESS字符集为utf-8
git stash
- 暂存
git stash
git stash save "message"
- 查看暂存列表
git stash list
- 取出暂存
git stash pop
git stash pop 1 // 应用第2个暂存
- 删除暂存
git stash drop 1
- 清空暂存
git stash clear
git branch
- 新建分支
git checkout -b branchName // 新建并切换分支
- 查看分支
git branch
git branch -a // 查看所有分支
- 切换分支
git checkout branchName
- 新建远程分支
git push origin branchName
- 删除本地分支
git branch -d branchName
git branch -D branchName
- 删除远程分支
git push origin --delete branchName
合并分支
- 合并分支
git merge branchNmae
- 合并其他分支的某次提交
git cherry-pick commitID