今日内容概要

  • 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. 数据结构 - 单链表 C++ 实现

    单链表 单链表的定义 typedef int ElemType; typedef struct LNode { ElemType data; LNode *next; } LNode, *LinkLi ...

  2. 数据库连接Database link?

    在一个用户下,可以获取到另外的用户下的表的数据,通常在跨数据库时使用. create database link link93 connect to scott identified by tiger ...

  3. Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

    (1)不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断,指进程不响应异步信号. (2)暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_ ...

  4. FutureTask 是什么 ?

    这个其实前面有提到过,FutureTask 表示一个异步运算的任务.FutureTask 里面 可以传入一个 Callable 的具体实现类,可以对这个异步运算的任务的结果进行等 待获取.判断是否已经 ...

  5. MariaDB CTE公用表达式

    公用表达式(Common Table Expressions,简称CTE) Maria DB 版本为10.2.2以上的才支持 WITH 语法 CTE 介绍 WITH关键字表示公用表表达式(CTE) 它 ...

  6. Redis 常见性能问题和解决方案?

    1.Master 最好不要写内存快照,如果 Master 写内存快照,save 命令调度 rdbSave 函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性 暂停服务 2.如果数据 ...

  7. Swing 是线程安全的?

    不是,Swing 不是线程安全的.你不能通过任何线程来更新 Swing 组件,如 JTable.JList 或 JPanel,事实上,它们只能通过 GUI 或 AWT 线程来更新. 这就是为什么 Sw ...

  8. 路径规划—BUG算法

  9. hanoi(汉诺塔)递归实现

    汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序 ...

  10. Altium Designer 设置多层方法及各层介绍

    因为PCB板子的层分类有很多,所以通过帮助大家能更好地理解PCB的结构,所以把我所知道的跟大家分享一下 1.PCB各层简介 1. Top Layer顶层布线层(顶层的走线) 2. Bottom Lay ...