git基础操作
一、分支
- 分支命名规则
- 开发分支:
dev
- 功能分支:
feature/功能名称
- bug分支:
bugfix/bug名称
- 预发布分支:
release/预发布版本名称
- 开发分支:
- 列出本地分支:
git branch
- 列出远程分支:
git branch -r
- 切换分支:
git checkout newB
- 删除本地分支:
git branch -d newB
- 创建分支:
git checkout -b newB
- 基于release-2.0分支新建分支release-2.1, 并且到新创建的分支上
git checkout -b release-2.1 release-2.0
git push -u origin release-2.1
(将newB提交到远程仓库 【第一次要用-u 以后不需要】)
二、暂存stash
- 暂存
git stash save "message"
git stash
- 暂存列表:
git stash list
- 应用暂存
git stash apply:默认使用第一个贮藏,即stash@{0}
如果想贮藏第二个:git stash apply stash@{1}
- 查看某个暂存改动:
git stash show:默认第一个 [-p] :详细
- 删除暂存:
git stash drop stash@{0}
- 清空所有暂存:
git stash clear
三、合并
- 合并指定分支到当前分支(当前newA):
git merge newB
- 冲突解决
- 解决完冲突后add对应的文件
- 然后commit一下内容,可以直接使用默认commit文案
- push文件
- cherry-pick(将newB分支上的commit提交到newA,当前在newA)
git cherry-pick newB分支上的某些commitId
- commit本地仓库后修改commit信息:
git commit --amend
四、remote
- 修改remote地址:
git remote set-url origin <newurl>
- 删除remote:
git remote remove origin
- 查看现有的remote地址:
git remote -v
五、基础配置
- git配置:
git config --list
- 设置用户名和邮箱
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"
六、Tag标签(版本发布)
tag简单理解,就是对某次commit打的一个标识,相当于起了个别名
例如在项目发布某个版本的时候,针对最后一次commit起一个 v1.0.1 这样的标签来标识里程碑的意义
查看标签:
- 直接列出所有的标签:
git tag
- 查看标签的提交信息:
git shwo 标签名
- 在提交历史中查看标签:
git log --oneline --graph
创建标签:
git tag 标签名
: 直接给当前的提交版本创建一个【轻量标签】git tag 标签名 提交版本号
:给指定的提交版本创建一个 【轻量标签】git tag -a 标签名称 -m 附注信息
:直接给当前的提交版本创建一个 【附注标签】git tag -a 标签名称 提交版本号 -m 附注信息
:给指定的提交版本创建一个【附注标签】git push origin 标签名称
: 将指定的标签上传到远程仓库git push origin --tags
: 将所有不在远程仓库中的标签上传到远程仓库
删除标签:
git tag -d 标签名称
: 删除本地指定名称的标签git push origin --delete 标签名称
:删除远程仓库的标签
Git切换到指定Tag:
git checkout tag_name
,此时git 可能会提醒你当前处于一个“detached HEAD" 状态。因为tag相当于一个快照,是不能修改他的代码的,如果想要在tag代码的基础上修改,你需要一个分支;git checkout -b branch_name tag_name
,这样就会从tag创建一个分支,然后就跟普通的git操作一样了
七、代码提交规范
feat
: 新功能(feature)fix
: 修改bugdocs
: 文档(documentation)style
: 格式化代码(不影响代码运行的变动)refactor
: 重构(不是新增功能,也是修改bug的代码变动)test
:新增测试chore
:部署相关的
常规提交:
feat : 增加xxx功能
xxx模块增加xxx功能
带有不兼容或者关闭issue的提交:
fix : 修改xxx功能
xxx模块xxx功能修改
不兼容之前的版本 #xxxId