1. 程式人生 > 其它 >git衝突解決、線上分支合併、luffy專案後臺登陸註冊頁面分析引入

git衝突解決、線上分支合併、luffy專案後臺登陸註冊頁面分析引入

今日內容概要

  • 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