前言

一个项目的分支,一般包括主干 master 和 开发分支 dev,以及若干临时分支

分支命名规范

分支:		命名:		说明:

主分支		master		主分支,所有提供给用户使用的正式版本,都在这个主分支上发布
开发分支 dev 开发分支,永远是功能最新最全的分支
功能分支 feature-* 新功能分支,某个功能点正在开发阶段
发布版本 release-* 发布定期要上线的功能
修复分支 bug-* 修复线上代码的 bug
验证分支 demo-* 技术调研,完成后删除该分支

关联和操作远程分支

  • 假设有一个远程分支为 dev,在本地建一个同名分支,然后执行下边的 pull 操作(第一次执行pull操作),就可以完成本地和远程分支的关联。
  • 以后就可以进行日常的 pull 和 push 操作,注意需要多一个 origin 关键字
建立本地同名分支        git branch dev
拉取远程分支 git pull origin dev
推送远程分支 git push origin dev

git操作流程

//暂存
git add .
//提交
git commit -m fix-xxxxx(举例)
//拉取最新
git pull
//处理冲突,重新返回开头,操作,直到没有冲突
//处理冲突完成,推送代码
git push

commit 命名规范

  • feat: 一个新功能
  • fix: 一个 bug 修复
  • docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE 等
  • style: 不影响代码逻辑的修改,比如空格、格式缩进、删除分号等
  • refactor: 代码重构
  • perf: 提升性能的改动
  • test: 增加或修改测试
  • chore: 改变构建流程、或者增加辅助工具、依赖库等

多人协作模式

add commit pull push 的顺序

  • 一般来说,本地开发时要随时进行 add 操作,执行 add .
  • 一般来说,每天需要将最新的开发分支 dev,进行一次远程提交(可能有merge)
  • 对于 commit 和 pull 操作的先后顺序,有两个方案,如下:
  • 方案一,在本地修改与远程代码无冲突的情况下,优先使用:pull->commit->push 的流程
  • 方案二,在本地修改与远程代码有冲突的情况下,优先使用:commit->pull->push 的流程
  • 尽量使用方案一,因为方案二会增加不必要的 merge 记录
  • 最后进行 push

pull 后的冲突处理

  • 如果 pull 或 push 失败报错,则因为远程分支比你的本地更新,需要先用 git pull 试图合并
  • 如果合并有冲突,则解决冲突,并在本地重新 commit;
  • 没有冲突或者解决掉冲突后,再用 push 推送远程分支

冲突处理

  • 当执行 pull、push、merge等操作时,如果发生冲突,git会在命令行提示并列出所有的冲突文件
  • 这时,需要在项目中查看每一个冲突文件,git会对文件中各处的冲突进行标记,标记一般为这样:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> dev
  • 其中,<<<<<<< HEAD 和 ======= 之间的内容,为远程分支版本
  • ======= 和 >>>>>>> dev之间的内容,为本地开发分支版本
  • 你要做的就是选择使用其中的一个版本,同时将另一个版本的代码删除掉
  • 处理该文件所有的标记冲突
  • 处理git命令提示的所有冲突文件中的冲突
  • 处理完成后,重新进行 pull 或 commit 操作
  • 如果没有再报错,就可以执行push

前端项目git操作命名规范和协作开发流程的更多相关文章

  1. git 分支命名规范

    为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 主要规范两点: git 分支命名规范 git 提交记录规范 1. git 分支命名规范 git 分支 ...

  2. iOS_icon命名规范 (iPhone_retina屏幕开发)

    iOS_icon命名规范  (iPhone_retina屏幕开发) 规则: 位置名称_功能名称_ 详细区分标志名称@2x.png navigationItem_leftBackIcon@2x.png ...

  3. 5 个 Git 工作流,改善你的开发流程

    原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...

  4. Git详细教程---多人协作开发

    Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...

  5. Gitblit搭建及Git协作开发流程

    1. 概述 目前主流的是git作为自己代码管理,但是采用github需要付费才能够使用,如果不付费,代码需要公开.创业团队及小型开发团队都有必要搭建自己的代码服务器,自己摸索需要一定的时间,会赶不及项 ...

  6. web SPA项目目录、命名规范

    项目结构:├── build ├── docs ├── package.json ├── src │ ├── components │ │ ├── List │ │ │ ├── index.js │ ...

  7. UI_RD协作开发流程

    1. 背景 由于android端需要进行多屏幕适配,这就给UI&RD之间的沟通产生了一些困难.我下面将会对这两种角色的沟通,说明了一下我们项目中沟通的方式和规则. 原则:客户端跟UI约定了各种 ...

  8. java开发命名规范总结

    一 包名的书写规范 (Package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性.包名全部为小写字母,且具有实际的区分意义. 1.1 一般要求1.选择有意义 ...

  9. 怎样配置git ssh连接,怎样在GitHub上加入协作开发人员,怎样配置gitignore和怎样在GitHub上删除资源库.

    **********1.在运行git push origin master指令时报例如以下错误: iluckysi@ILUCKYSI-PC /d/ilucky/message/code (master ...

随机推荐

  1. ASP.NET Core知多少(7):对重复编译说NO -- dotnet watch

    ASP.NET Core知多少系列:总体介绍及目录 1. 引言 我们一般的开发过程,就是编码-->编译-->运行-->调试-->定位问题--->修改代码-->编译- ...

  2. Centos7 Nginx开机启动

    1.简易安装nginx: ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf ...

  3. 【从零开始搭建自己的.NET Core Api框架】(二)搭建项目的整体架构

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  4. [Swift]LeetCode664. 奇怪的打印机 | Strange Printer

    There is a strange printer with the following two special requirements: The printer can only print a ...

  5. mongo 根据对象中的某个条件来查询

    假如A表有如下数据 { "id" : 1, "users_info" : [{"uid" : 10001}, {"uid" ...

  6. Linux 设置自启动服务

     0 为停机,机器关闭.(千万不要把initdefault设置为0 )    1 为单用户模式,就像Win9x下的安全模式类似.    2 为多用户模式,但是没有NFS支持.    3 为完整的多用户 ...

  7. C++ crash 堆栈信息获取

    最近在做程序异常时堆栈信息获取相关工作,上一篇文章成功的在程序creash时写下了dump文件,而有些情况写dump文件是 不可以的,比如在jni开发时,C++只做底层处理,而整个项目是android ...

  8. SignalR学习笔记(五) 横向扩展之SQL Server

    当一个Web应用程序达到一台服务器能力限制,即请求处理数量限制之后,有2种解决方案:纵向扩展和横向扩展. 纵向扩展即用更强的服务器(或虚拟机),或为当前的服务器添加更多的内存,CPU等 横向扩展即添加 ...

  9. JS执行环境,作用域链及非块状作用域

    JS中的执行环境,顾名思义就是变量或函数所执行时的环境.在我的理解中,执行环境和作用域相差不大. 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个环境栈中.而在函数执行之后 ...

  10. 使用mpvue开发小程序教程(一)

    前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...