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:

  1. git checkout tag_name,此时git 可能会提醒你当前处于一个“detached HEAD" 状态。因为tag相当于一个快照,是不能修改他的代码的,如果想要在tag代码的基础上修改,你需要一个分支;
  2. git checkout -b branch_name tag_name,这样就会从tag创建一个分支,然后就跟普通的git操作一样了

七、代码提交规范

  • feat: 新功能(feature)
  • fix: 修改bug
  • docs: 文档(documentation)
  • style: 格式化代码(不影响代码运行的变动)
  • refactor: 重构(不是新增功能,也是修改bug的代码变动)
  • test:新增测试
  • chore:部署相关的

常规提交:

feat : 增加xxx功能
xxx模块增加xxx功能

带有不兼容或者关闭issue的提交:

fix : 修改xxx功能
xxx模块xxx功能修改 
不兼容之前的版本 #xxxId
posted @ 2023-02-19 19:59  孙半仙人  阅读(34)  评论(0编辑  收藏  举报