Git 常用语法

作者: Adoins | 来源:发表于2019-03-15 15:46 被阅读7次

分支管理

分支合并
- 同分支之间通过rebase合并代码,保持主线到commit生命线干净: `git pull --rebase`
- 不同分支之间通过merge合并,减少合并的风险
长期分支

正常情况下,远程仓库中只有两个长期分支:master和develop

- develop: 日常开发分支
- master: 对外发布的分支
- 版本正式对外发布后,会在master上打tag
- 如果已发布的版本有bug,需要在develop和master上同步修复
临时分支
  • 功能分支: 命名格式为feature-*

    • 日常开发尽量都在develop分支上进行,功能分支应该在当前功能会block其他人开发的情况下才创建
    • 功能分支开发并自测完后,合并到develop,整个功能分支的生命周期如下:
    创建分支:git checkout -b feature-x develop
    切换并合并到develop:
    git checkout develop
    git merge --no-ff feature-x
    删除分支:git branch -d feature-x
    如果有远程分支,需要同时删除远程分支:git push origin --delete feature-x或者git push origin :feature-x
    
    • 说明: 功能分支可以视情况,用fork替代
  • 预发布: 命名格式为release-*

    • 测试同学如果需要一个不受开发影响的分支,可以创建预发布分支
    • 如果测试有紧急bug,需要在release和develop分支上同时修复
    • 测试没问题后,可以合并到master,整个生命周期如下:
    git checkout -b release-1.2 develop
    ...开发中...
    git checkout master
    git merge --no-ff release-1.2
    git tag -a 1.2
    git branch -d release-1.2
    
    • 说明: 此分支可以通过在develop上打tag的方式来确定测试的版本,由测试同学灵活控制
  • 修复bug: 命名格式为hotfix-*

    • 当已发布版本出现bug的时候,需要创建hotfix分支
    • bug修复后,须要将修改同时同步到develop和master,整个hotfix的生命周期如下:
    git checkout -b hotfix-1.2.0 master
    ...bug修复中...
    git checkout master
    git merge --no-ff hotfix-1.2.0
    git tag -a 1.2.1
    同时合并到develop分支
    git checkout develop
    git merge --no-ff hotfix-0.1
    git branch -d hotfix-0.1
    
    • 说明: 注意这里使用--no-ff,以确保每次merger都会生成一个commit(默认fast forward不会生成commit节点),保证生命周期清晰

commit编写规范

同时格式如下:

<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

举例:

feat(graph-dc-inbound): 增加了一个功能模块

1. 增加了xxx的功能
2. 更新了之前的xxx功能
3. 移除了xxx部分的代码
4. 数据库增加了xxx字段

Close #999
  • type: 必须填写,是当前commit的类型,约定如下:
    • feat: 新功能
    • fix: 修复bug
    • docs: 文档
    • style: 格式(不影响代码的变动)
    • refactor: 重构(不增加新功能,也不修改bug)
    • test: 增加测试
    • chore: 杂项,构建脚本或者其他辅助工具
  • scope: 必须填写,当前修改的影响范围,约定为模块的名称
  • subject: 必须填写,当前修改的简短描述
    • 以第一人称描述
    • 末尾不加结尾符
    • 如果是英文描述,首字母不需要大写
  • body: 可选项,对当前修改的详细描述
    • 以第一人称描述
    • 可以分多行
    • 通常用于描述当前修改的原因,或者和之前代码的区别
  • footer: 可选项,主要用于新代码和JIRA上某个任务相关连,可以在此填写,后续会通过这个自动关闭JIRA任务,例如Close #123, #245, #992

以约定的格式提交后,可以方便查看提交历史,比如:

  • 查看README.md文件的修改历史:git log --oneline README.md
  • 如果想看修改的diff日志,可以加上-p
  • 可能修改会很多,可以通过修改类型来过滤:git log --oneline README.md | grep docs或者git log --oneline --grep=‘docs’ README.md
  • 如果想在此基础上查看指定某人的提交,可以加上--author=xxx
    其他更多的参数,可以参考:http://blog.csdn.net/chenpeng78/article/details/55212208

如果使用idea开发的同学,可以直接在idea中使用Version Control进行界面的过滤操作

相关文章

  • git rebase 与 git merge 的区别

    前言 初学git,在合并分支上必定会常用到 git merge 语法。今日接触到 git rebase,发现二者都...

  • Git学习笔记

    Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...

  • sass/git/gulp

    sass用法指南sass语法 常用git指令git-book gulp详细入门教程gulp使用指南segmentf...

  • git常用语法

    创建空目录 $ mkdir 目录名 进入目录 $ cd 目录名 显示当前目录$ pwd 把当前目录变为管理仓库$ ...

  • Git 常用语法

    分支管理 分支合并 长期分支 正常情况下,远程仓库中只有两个长期分支:master和develop 临时分支 功能...

  • git相关教程汇总

    1. git常用命令 git常用命令总结git常用命令讲解 2. git教程相关网站 廖雪峰的git教程猴子都能懂...

  • git 详解

    .gitignore 常用 忽略文件配置 常用命名 git --help 查看所有git 命令 git init...

  • Git 常用命令详解

    @[TOC](Git 常用命令详解) 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信...

  • Git常用版本策略

    Git常用版本策略 1. Git常用命令 查看本地分支git branch 查看远程分支git branch -a...

  • 常用Git命令

    Git常用指令速查图 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状...

网友评论

    本文标题:Git 常用语法

    本文链接:https://www.haomeiwen.com/subject/owfrmqtx.html