前端项目git操作命名规范和协作开发流程
前言
一个项目的分支,一般包括主干 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操作命名规范和协作开发流程的更多相关文章
- git 分支命名规范
为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作. 主要规范两点: git 分支命名规范 git 提交记录规范 1. git 分支命名规范 git 分支 ...
- iOS_icon命名规范 (iPhone_retina屏幕开发)
iOS_icon命名规范 (iPhone_retina屏幕开发) 规则: 位置名称_功能名称_ 详细区分标志名称@2x.png navigationItem_leftBackIcon@2x.png ...
- 5 个 Git 工作流,改善你的开发流程
原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...
- Git详细教程---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- Gitblit搭建及Git协作开发流程
1. 概述 目前主流的是git作为自己代码管理,但是采用github需要付费才能够使用,如果不付费,代码需要公开.创业团队及小型开发团队都有必要搭建自己的代码服务器,自己摸索需要一定的时间,会赶不及项 ...
- web SPA项目目录、命名规范
项目结构:├── build ├── docs ├── package.json ├── src │ ├── components │ │ ├── List │ │ │ ├── index.js │ ...
- UI_RD协作开发流程
1. 背景 由于android端需要进行多屏幕适配,这就给UI&RD之间的沟通产生了一些困难.我下面将会对这两种角色的沟通,说明了一下我们项目中沟通的方式和规则. 原则:客户端跟UI约定了各种 ...
- java开发命名规范总结
一 包名的书写规范 (Package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性.包名全部为小写字母,且具有实际的区分意义. 1.1 一般要求1.选择有意义 ...
- 怎样配置git ssh连接,怎样在GitHub上加入协作开发人员,怎样配置gitignore和怎样在GitHub上删除资源库.
**********1.在运行git push origin master指令时报例如以下错误: iluckysi@ILUCKYSI-PC /d/ilucky/message/code (master ...
随机推荐
- python—迭代器、生成器
1.迭代器(iteration) 迭代器协议:提供next()方法,该方法要么返回迭代的下一项,要么异常.(只能往后走) 可迭代对象:实现迭代器协议的对象. **字符串.列表.元祖.字典.集合.文件都 ...
- 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?
如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.naviga ...
- Python档案袋(线程 )
Python的进程和线程是使用的操作系统的原生线程和进程,其是去调用操作系统的相应接口实现 进程:之间不可直接共享数据,是资源的集合,进程必须有一个线程 线程:基于进程,之间可直接共享数据,可执行,只 ...
- 【Spark篇】---Spark调优之代码调优,数据本地化调优,内存调优,SparkShuffle调优,Executor的堆外内存调优
一.前述 Spark中调优大致分为以下几种 ,代码调优,数据本地化,内存调优,SparkShuffle调优,调节Executor的堆外内存. 二.具体 1.代码调优 1.避免创建重复的RDD,尽 ...
- AI 这么优秀,连我鉴黄师的饭碗都抢了
色情行业,或许是对信息渠道最敏锐.利用各类信息渠道进行传播最“充分”的“行业”.这些年,社交 App.直播.短视频等新的互联网应用方式,都难逃色情内容的“骚扰”.哪里人多,色情内容就能立刻扑过去,在海 ...
- asp.net mvc中action接收客户端发送过来的html片段
出于安全的考虑,默认情况下,如果从客户端发送过来的数据中直接包括了HTML内容,ASP.NET会自动启动保护措施,这当然是一个比较好的设计,只不过在某种情况下我们真的需要获取这个值,那我们应该怎么办呢 ...
- pdf生成库-libharu编译
相关文章:libharu 源码编译 VS2010 1.首先下载libharu源码,libharu依赖于libpng和libzib,如果编译过libpng和libzib的话,直接拿过来用即可.否则需要自 ...
- 服务器Windows 2008R2 C盘清理
今天因为连服务器的时间慢了很多,然后看了一下C盘的空间,OMG剩下222K.然后一直上网找解决方案. 按照惯例,应该开一个360看看,C盘清理啊,搬家什么的.360告知的竟然是没有可以搬移的,所以,这 ...
- Docker折腾手记-linux下安装
Linux下的安装方法 博主用的是centos7,其它也是大同小异 我根据的是官网的教程进行的操作,地址是 https://docs.docker.com/engine/installation/li ...
- ReentrantLock原理学习
上文我们学习了ReentrantLock的基本用法,在最后我们留下了一个问题,ReentrantLock获取的锁是什么锁呢?本文我们就从源码的角度来一探究竟.本文涉及到的源码对应JDK版本为1.8. ...