git衝突解決、線上分支合併、luffy項目後台登陸註冊頁面分析引入
今日內容概要
- git衝突解決
- 線上分支合併
- 登陸註冊頁面(引入)
- 手機號是否存在介面
- 騰訊雲簡訊申請
內容詳細
1、git衝突解決
1.1 多人在同一分支開發,出現衝突
# 先將前端項目也做上傳到 gitee
cd 到項目路徑下
git init
git add .
git commit -m "注釋"
git remote add origin //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、騰訊雲簡訊申請(引入,為了驗證:發送簡訊驗證碼介面)
# 進入騰訊雲官網://cloud.tencent.com/
微信掃碼登錄
找到控制台
搜索簡訊 首次註冊贈送一百條
創建簡訊簽名:
中國簡訊-簽名管理---》創建簽名--》使用公眾號提交申請---》審核
創建簡訊正文模板
中國簡訊-正文模板管理---》創建正文模板--》等審核
發送簡訊
發送簡訊兩種方式:API,SDK
# 申請一個公眾號:
//mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fcgi-bin%2Fhome%3Ft%3Dhome%2Findex%26lang%3Dzh_CN%26token%3D2082783786
個人,身份證
# 發送簡訊,按照文檔來:
//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:
//cloud.tencent.com/document/product/382/11672
只是發簡訊的sdk,功能少,python3.8以後不支援
pip install qcloudsms_py
