git衝突解決、線上分支合併、luffy專案後臺登陸註冊頁面分析引入
阿新 • • 發佈:2022-04-28
今日內容概要
- 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