git指令整理
git全局设置
-
git config --global user.name “你的名字”
-
git config --list user.email “你的邮箱”
git配置项的作用 ==> 生成秘钥的时候需要,秘钥可以显示是谁上传了代码
基本
- 查看版本 git --version
- 初始化 git init
打印
- 打印commit历史版本 git log
- 查看状态 git status
上库代码
- 工作区=>暂存区 git add .
- 暂存区=>历史版本 git commit -m “描述信息”
- 提交远程仓库 git push origin 分支名
下拉代码
- 克隆整个项目 git clone “仓库地址”
- 克隆分支代码 git clone -b 分支名 “仓库地址”
- 下拉代码 git pull origin 分支名
撤销
- 还原到上一个版本 git reset --hard HEAD^
- 还原到指定版本号 git reset --hard (commit版本id) (commit后面的就是id)
- git status绿字变红字 git reset HEAD 文件名 暂存区拉回工作区
- git status红字变无 git checkout – 文件名 撤销本地更改
查看 切换 分支
- 查看所有分支 git branch -a
- 查看当前分支 git branch
- 创建分支 git branch 分支名
- 切换分支 git checkout 分支名
- 删除分支 git branch -d 分支名
- 合并分支 git merge 你要合并的分支名称
比如你现在处在master分支上,执行一个指令 git merge pcy,就是把pcy分支上的所有代码拿到master分支上
合并 分支
=>只能站在一个分支上,把别的分支上的内容合并到非自己身上的
=>执行代码
->git merge 你要合并的分支名称
=>比如你现在处在master分支上
=>执行一个指令 git merge login
=>就是把login分支上的所有代码拿到master分支上
tag
查看tag git tag
打tag git tag -a v0.0.1 -m “第一个小版本”
上传远程tag git push origin --tags
删除tag git tag -d v1.0
要删除远程服务器上的tag,可以使用如下的命令: git push origin --delete tag v1.0
远程仓库
- 第一次上传代码 git remote add origin 远程仓库地址
- 删除本地远程仓库提交地址 git remote rm origin
- 查看远程地址 git remote -v
冲突问题
情景
=>两个人向一个远程仓库提交文件
=>A人员初始化仓库准备好了
=>B人员把这个仓库克隆下来
=>两个人开发一个项目
=>A,B两个人员同时往一个仓库上传东西,你上传是2号,我也是2号,就会出现冲突
解决方法:
a先上传,b上传的时候先get pull一下,把远程的拉下来一份,在上传上去
git提交规范
feat: 新功能(feature)
fix: 修补bug
docs: 文档(documentation)
style: 格式(不影响代码运行的变动)
refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
chore: 构建过程或辅助工具的变动
revert: 撤销,版本回退
perf: 性能优化
test:测试
improvement: 改进
Commitizen
可以使用典型的git工作流程或通过使用CLI向导Commitizen来添加提交消息格式。
1.安装
npm install -g commitizen
npm install -g cz-conventional-changelog
2.执行
在项目目录里,运行下面的命令,使其支持 Angular 的 Commit message 格式。
commitizen init cz-conventional-changelog --save --save-exact
以后,凡是用到git commit
命令,一律改为使用git cz
。这时,就会出现选项,用来生成符合格式的 Commit message。
changelog 生成改变日志
1.安装
$ npm install -g conventional-changelog-cli
2.根目录创建CHANGELOG.md
3.配置package.json
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"
4.运行 生成日志
npm run changelog
5.如果是第一次使用
执行conventional-changelog -p angular -i CHANGELOG.md -s -r 0,会到的以前所有的变更日志,会将日志写进CHANGELOG.md.md,
以后执行npm run changelog
npm ls -g -depth=0 查看全局包
release规则
\1. 所有系统的代码中都必须包含版本号, android,嵌入式,windows app的代码中,在代码根目录下建一个release目录,里面放入android apk,windows 安装包,嵌入式的hex,命名为 文件名_版本.后缀
\2. README.md 必须更新,里面需要填写release notes, 包括2部分。 1. release 完成什么功能 2. 未完成的功能,已知道的问题
\3. 代码必须提交到git系统中,并提交merge到master中
\4. 审批人merge以后,必须打上release tag
\5. 测试工程师必须使用正式release版本测试。
6.云服务器上部署最新的image