今日内容概要

  • git冲突解决
  • 线上分支合并
  • 登陆注册页面(引入)
  • 手机号是否存在接口
  • 腾讯云短信申请

内容详细

1、git冲突解决

1.1 多人在同一分支开发,出现冲突

# 先将前端项目也做上传到 gitee
cd 到项目路径下
git init
git add .
git commit -m "注释"
git remote add origin https://gitee.com/liuqingzheng/luffy_api.git # 添加一个远程仓库
git push origin master # 把本地仓库推到远程 # 张三改了567.txt的第二行加了lqz is nb----》提交到远端
# 我本地也567.txt的第二行加了lqz is nb----》准备提,提不上去,原因是你本地不是最新的代码 # 本地提交代码,本地必须把本地更新到最新--git pull, 只要git pull ,会把远端冲突的代码合并进来
<<<<<<< HEAD # 冲突开始
lqz is big # 这里是我的代码
=======
lqz is nb # 这里是远端代码
>>>>>>> e2d67d7517d66d244f824a32e20d4dd43f4ffc4d # 冲突结束 # 查看代码,如果是同样的功能,选择保留同事的,如果是不同功能,两个代码都保留,如果真的要删同事的代码,一定跟他说一声,最终结局冲突 # 解决冲突步骤:
git add .
git commit -m ''
git pull origin master # 每次提交代码之前 一定要先拉取代码 避免冲突
git push origin master

1.2 分支合并出冲突

	git branch dev  # 创建分支

# 加入会冲突的diam
git add .
git commit -m '主分支加入了一行'
git checkout dev # 切换分支
git status # 加入会冲突的代码
git add .
git commit -m 'dev分支加入了一行'
git checkout master
git merge dev # 合并分支 # 出现下面冲突
<<<<<<< HEAD
lqz is big
=======
lqz is very big
>>>>>>> dev #手动解决冲突,再提交
git add .
git commit -m '分支合并冲突解决' # 正常情况,合并完分支,就把dev删除,继续开发,再重新创建dev分支
git branch -d dev # 删除分支

2、线上分支合并

# 提交pull request---》提交pr---》提个合并分支请求

# 你提交pr---》你领导审核---》审核通过同意---》代码合并完成

# 本地某个分支加入了代码,提交到远端
# 在远端新建一个pull Request,选择要合并的两条分支---》提交了领导收到请求 # 看你的代码---》没有问题---》同意---》合并到分支中去,完成线上分支合并 ### 拓展:
1 线下分支合并后提交到线上
本地dev ,master,本地把dev合到 master中后,push到master(有的公司不给你master的写权限) 2 git flow,git变基,git fetch和git pull的区别
git flow 大神提出的一种 git分支方案 git 变基:
1 多个记录整合成一个记录
2 解决分支合并分叉问题 git fetch和git pull的区别:
相同点 首先在作用上他们的功能是大致相同的,都是起到了更新代码的作用。
不同点 git pull 类似于 git fetch+git merge 3 pycharm操作git
右下角可以操作分支
原来用命令操作的,用图形化点点点都能完成,并且更直观且强大 4 为开源项目贡献代码
fork 开源代码---》你自己仓库有一份
改你自己仓库的代码,提交到自己仓库
你的仓库,跟它就不一样了
提交pr,等作者审核,他是不是给你合进去,如果合进去了 5 代码回退
# 本地回退
git reset --hard 41f8fd9609034b4eae822bcee2f723f7b60cbff2 # 本地回退了 但远端还是最新
把本地提交到远端
git push origin master -f # 强制提交 !!!在公司不能使用!!!

3、luffy项目:验证手机号是否存在接口

# pycharm打开路飞后端项目

# 访问:
127.0.0.1:8000/api/v1/user/mobile/check_mobile?mobile=18953675222

路由:

# 在总路由下添加:
path('api/v1/user/', include('user.urls')), # 到user/urls.py 添加:
from django.urls import path, include
from rest_framework.routers import SimpleRouter
from .views import UserView router = SimpleRouter()
# 127.0.0.1:8000/api/v1/user/mobile/check_mobile
router.register('mobile', UserView, 'mobile')
urlpatterns = [
path('', include(router.urls)),
]

视图类 user/views.py:

# 在user/views.py 写入:
from rest_framework.viewsets import ViewSet
from rest_framework.decorators import action
from .models import User
from rest_framework.exceptions import APIException
from utils.response import APIResponse class UserView(ViewSet):
# get 请求携带手机号,就能校验手机号
@action(methods=["GET"], detail=False)
def check_mobile(self, request):
try:
mobile = request.query_params.get('mobile')
User.objects.get(mobile=mobile)
return APIResponse() # {code:100,msg:成功}-->前端判断,100就是手机号存在,非100,手机号步骤
except Exception as e:
raise APIException(str(e)) # 处理了全局异常,这里没问题

4、登陆注册页面(分析引入)

# 登陆和注册功能---》5个接口
多方式登陆接口(手机号,邮箱,用户名 +密码) 验证手机号是否存在接口 发送短信验证码接口 # 借助于第三方发送短信:阿里,腾讯,容联云通讯,刚注册会送100条短信 手机号+验证码登陆接口 手机号+验证码+密码注册接口

5、腾讯云短信申请(引入,为了验证:发送短信验证码接口)

# 进入腾讯云官网:https://cloud.tencent.com/
微信扫码登录
找到控制台
搜索短信 首次注册赠送一百条
创建短信签名:
国内短信-签名管理---》创建签名--》使用公众号提交申请---》审核
创建短信正文模板
国内短信-正文模板管理---》创建正文模板--》等审核
发送短信
发送短信两种方式:API,SDK # 申请一个公众号:
https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fcgi-bin%2Fhome%3Ft%3Dhome%2Findex%26lang%3Dzh_CN%26token%3D2082783786
个人,身份证 # 发送短信,按照文档来:
https://cloud.tencent.com/document/product/382/43196 # api和sdk的区别
api接口,咱们通过http调用腾讯的发送短信接口,腾讯负责吧短信发送到手机上,http的接口--》基于它来做,比较麻烦,麻烦在请求参数,携带很多,有的时候我们有可能找不到某个参数 sdk:使用不同语言封装好了,只需要导入,调用某个函数,传入参数就可以发送,用起来更简单,区分语言,可能官方没有提供sdk # 发短信sdk的使用
3.x的发送短信sdk,tencentcloud 包含的功能更多,不仅仅只能发短信,还能干别的,但是咱们用不到
pip install tencentcloud-sdk-python 2.x发送短信sdk:
https://cloud.tencent.com/document/product/382/11672
只是发短信的sdk,功能少,python3.8以后不支持
pip install qcloudsms_py

git冲突解决、线上分支合并、luffy项目后台登陆注册页面分析引入的更多相关文章

  1. git下载线上分支到本地分支

    首先执行 'git branch -r' 查看线上的所有分支 例如像要拷贝线上分支 'origin/online' 到本地本地分支 'online',则执行 'git checkout -b onli ...

  2. 指定文件夹 指定文件后缀名 删除整个文件夹 git 冲突解决 create a new repository on the command line push an existing repository from the command line

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c2 ...

  3. 听说”双11”是这么解决线上bug的

    听说"双11"是这么解决线上bug的 --Android线上热修复的使用与原理 预备知识和开发环境 Android NDK编程 AndFix浅析 Android线上热修复的原理大同 ...

  4. git 因线上分支名重复导致无法拉取代码

    有时 git pull 或 git fetch 时发现 git 报了个异常,说法像是无法将线上某个分支与本地分支合并,由于分支是...(很长的hash)但是分支却是...(很长的hash) 仔细查查后 ...

  5. Git版本控制:Git冲突解决 相关错误总结

    http://blog.csdn.net/pipisorry/article/details/46958699 冲突处理 git push冲突处理 git push时出现冲突:! [rejected] ...

  6. GIT 如何从另一分支合并特定的文件

    是否遇到过这种情景: 您在一个分支上工作,发现该分支上的某些文件实现的功能已经在其他分支上实现了 但因为这两个分支实现不同的功能,因此不能进行简单的合并工作,但您又不想重复其他已经完成的工作 以下操作 ...

  7. git冲突解决的方法

    在运行时,出现了冲突的报错.类似于<<<<<<< HEAD,在你改变的文件有分支与HEAD间的区别.这里就是冲突的地方. 1.解决方法一 使用命令  切换分支 ...

  8. git的使用理解(分支合并的使用理解,多人编程的解决方案)

    本文主要记录了对git日常使用的一些理解,主要是对git分支的一些感悟. git强大的版本控制系统,之前也使用过SVN,感觉上git对于多人开发的版本控制更加强大,特别是最近对git分支的使用,更是深 ...

  9. git学习笔记06-创建分支合并分支-比svn快多了,因为只有指针在改变

    一开始git只有一条时间线,这个分支叫主分支,即master分支. HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支. 每次提交,mas ...

随机推荐

  1. innodb和myisam

    在Mysql数据库中,常用的引擎主要就是2个:Innodb和MyIASM.这篇文章将主要介绍这两个引擎,以及该如何去选择引擎,最后在提一下这2种引擎所使用的数据结构是什么. 首先介绍一下Innodb引 ...

  2. 对于 GC 方面,在使用 Elasticsearch 时要注意什么?

    1.SEE:https://elasticsearch.cn/article/32 2.倒排词典的索引需要常驻内存,无法 GC,需要监控 data node 上 segmentmemory 增长趋势. ...

  3. ACL 权限控制机制 ?

    UGO(User/Group/Others) 目前在 Linux/Unix 文件系统中使用,也是使用最广泛的权限控制方式.是一种粗 粒度的文件系统权限控制模式. ACL(Access Control ...

  4. 区分构造函数注入和 setter 注入?

    构造函数注入 setter 注入 没有部分注入 有部分注入 不会覆盖 setter 属性 会覆盖 setter 属性 任意修改都会创建一个新实例 任意修改不会创建一个新实例 适用于设置很多属性 适用于 ...

  5. 为什么需要域驱动设计DDD?

    我们需要 DDD 的因素 – 微服务面试问题

  6. SQL数据库之设置查询出来数据为默认值

    -- 如果工资为null,按0处理 -- 函数: ifnull(字段, 默认值) : 如果指定字段的内容是null, 就按默认值处理 select name, ifnull(salary, 0) fr ...

  7. MySQL优化篇(一),我可以和面试官多聊几句吗?——SQL优化流程与优化数据库对象

    我可以和面试官多聊几句吗?只是想偷点技能过来.MySQL优化篇(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. MyISAM表锁和InnoD ...

  8. C语言break,return

    C语言break,continue,return的相似与区别 相同点: 都改变了程序的执行流程 区别是:break    用于循环和switch分支,跳出它所在分支或循环体到它所在的模块的      ...

  9. 小记-用canvas完成图像液化(向前变形)过程

    前几天由于团队需要,折腾了一下图像液化的处理过程. 现在来整理一下思路,做个记录. 用到公式如下,网上拿来的 话不多说,上代码 本来想尽量写出点逼格...后来发现怎么写也还是几个function搞定, ...

  10. ES6-11学习笔记--数组的扩展

    类数组 / 伪数组 Array.from() Array.of() copyWithin() fill() includes()   类数组.伪数组例子: let divs = document.ge ...