国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

前端中小團隊 GitLab 最佳實踐(文末送書)

共 10142字,需瀏覽 21分鐘

 ·

2021-03-11 18:45

最近團隊代碼庫從Gerrit遷移到了Gitlab,為了讓前端團隊日常開發(fā)工作有條不紊,高效運轉,開發(fā)歷史可追溯,我也查閱和學習了不少資料。參考業(yè)界主流的Git工作流,結合公司業(yè)務特質,我也梳理了一套適合自己團隊的Git工作流,在這里做下分享。

分支管理

首先要說的是分支管理,分支管理是git工作流的基礎,好的分支設計有助于規(guī)范開發(fā)流程,也是CI/CD的基礎。

分支策略

業(yè)界主流的git工作流,一般會分為developreleasemasterhotfix/xxxfeature/xxx等分支。各個分支各司其職,貫穿了整個開發(fā),測試,部署流程。我這里也基于主流的分支策略做了一些定制,下面用一張表格簡單概括下:

分支名分支定位描述權限控制
develop開發(fā)分支不可以在develop分支push代碼,應新建feature/xxx進行需求開發(fā)。迭代功能開發(fā)完成后的代碼都會merge到develop分支。Develper不可直接push,可發(fā)起merge request
feature/xxx特性分支針對每一項需求,新建feature分支,如feature/user_login,用于開發(fā)用戶登錄功能。Develper可直接push
release提測分支由develop分支合入release分支。ps: 應配置此分支觸發(fā)CI/CD,部署至測試環(huán)境。Maintainer可發(fā)起merge request
bug/xxx缺陷分支提測后發(fā)現的bug,應基于develop分支創(chuàng)建bug/xxx分支修復缺陷,修改完畢后應合入develop分支等待回歸測試。
master發(fā)布分支master應處于隨時可發(fā)布的狀態(tài),用于對外發(fā)布正式版本。ps: 應配置此分支觸發(fā)CI/CD,部署至生產環(huán)境。Maintainer可發(fā)起merge request
hotfix/xxx熱修復分支處理線上最新版本出現的bugDevelper可直接push
fix/xxx舊版本修復分支處理線上舊版本的bugDevelper可直接push

一般來說,developreleasemaster分支是必備的。而feature/xxxbug/xxxhotfix/xxxfix/xxx等分支純屬一種語義化的分支命名,如果要簡單粗暴一點,這些分支可以不分類,都命名為issue/issue號,比如issue/1,但是要在issue中說明具體問題和待辦事項,保證開發(fā)工作可追溯。

保護分支

利用Protected Branches,我們可以防止開發(fā)人員錯誤地將代碼push到某些分支。對于普通開發(fā)人員,我們僅對develop分支提供merge權限。

保護分支

具體操作案例請前往下面的實戰(zhàn)案例一節(jié)查看。

issue驅動工作

我們團隊采用的敏捷開發(fā)協(xié)作平臺是騰訊的TAPD[1],日常迭代需求,缺陷等都會在TAPD上記錄。為了讓Gitlab代碼庫能與迭代日常事務關聯上,我決定用Gitlab issues來做記錄,方便追溯問題。

里程碑

里程碑Milestone可以認為是一個階段性的目標,比如是一輪迭代計劃。里程碑可以設定時間范圍,用來約束和提醒開發(fā)人員。

milestones

里程碑可以拆解為N個issue,新建issue時可以關聯里程碑。比如這輪迭代一共5個需求,那么就可以新建5個issue。在約定的時間范圍內,如果一個里程碑關聯的所有issueClosed掉了,就意味著目標順利達成。

創(chuàng)建issue

標簽

Gitlab提供了label來標識和分類issue,我覺得這是一個非常好的功能。我這里列舉了幾種label,用來標識issue分類緊急程度。

標簽管理

issue分類

所有的開發(fā)工作應該通過issue記錄,包括但不限于需求,缺陷開發(fā)自測試,用戶體驗等范疇。

需求&缺陷

這里大概又分為兩種情況,一種是TAPD記錄在案的需求和缺陷,另一種是與產品或測試人員口頭溝通時傳達的簡單需求或缺陷(小公司會有這種情況...)。

對于TAPD記錄的需求和缺陷,創(chuàng)建issue時應附上鏈接,方便查閱(上文中已有提到)。

對于口頭溝通的需求和缺陷,我定了個規(guī)則,要求提出人本人在Gitlab上創(chuàng)建issue,并將需求或缺陷簡單描述清楚,否則口頭溝通的開發(fā)工作我不接(也是為了避免事后扯皮)。

ps:其實要求產品或者測試提issue,還不如上Tapd記錄。我定這么個規(guī)則,其實就是借Gitlab找個說辭,杜絕口頭類需求或缺陷,哈哈。

開發(fā)自測試

開發(fā)者自己發(fā)現了系統(tǒng)缺陷或問題,此時應該通過issue記錄問題,并創(chuàng)建相應分支修改代碼。

自測試issue

實戰(zhàn)案例

我前面也說了,我的原則是issue驅動開發(fā)工作。

下面用幾個例子來簡單說明基本的開發(fā)流程。小公司里整個流程比較簡單,沒有復雜的集成測試,多輪驗收測試,灰度測試等。我甚至連單元測試都沒做(捂臉...)。

公共庫和公共組件其實是很有必要做單元測試的,這里立個flag,后面一定補上單元測試。

需求開發(fā)

feature/1,一個特性分支,對應issue 1

創(chuàng)建需求

正常的需求當然來源于產品經理等需求提出方,由于是通過示例說明,這里我自己在TAPD上模擬著寫一個需求。

TAPD創(chuàng)建需求

創(chuàng)建issue

創(chuàng)建Gitlab issue,鏈接到TAPD中的相關需求。

創(chuàng)建issue
一個issue

創(chuàng)建分支&功能開發(fā)

基于develop分支創(chuàng)建feature分支進行功能開發(fā)(要保證本地git倉庫當前處于develop分支,且與遠程倉庫develop分支同步)。

git checkout -b feature/1

或者直接以遠程倉庫的develop分支為基礎創(chuàng)建分支。

git checkout -b feature/1 origin/develop

ps:我這里用的feature/1作為分支名,其實這里的1是用的issue號,并沒有用諸如feature/login_verify之類的名字,是因為我覺得用issue號可以更方便地找到對應的issue,更容易追蹤代碼。

接著我們開始開發(fā)新功能......

快樂地擼代碼

commit & push

完成功能開發(fā)后,我們需要提交代碼并同步到遠程倉庫。

PS D:\projects\gitlab\project_xxx> git add .
PS D:\projects\gitlab\project_xxx> git cz
[email protected], [email protected]

? Select the type of change that you're committing: feat: A new feature
? What is the scope of this change (e.g. component or file name): (press enter to skip)
? Write a short, imperative tense description of the change (max 94 chars):
(9) 登錄校驗功能
? Provide a longer description of the change: (press enter to skip)

? Are there any breaking changes? No
? Does this change affect any open issues? Yes
? If issues are closed, the commit requires a body. Please enter a longer description of the commit itself:
-
? Add issue references (e.g. "fix #123", "re #123".):
fix #1

git push origin HEAD

git cz是利用了commitizen來替代git commit。詳情請點擊前端自動化部署的深度實踐深入了解。

fix #1用于關閉issue 1。

git push origin HEAD則代表推送到遠程倉庫同名分支。

創(chuàng)建Merge Request

開發(fā)人員發(fā)起Merge Request,請求將自己開發(fā)的功能特性合入develop分支。

創(chuàng)建Merge Request

接著Maintainer需要Review代碼,確認無誤后同意Merge。然后這部分代碼就在遠程Git倉庫入庫了,其他開發(fā)同學拉取develop分支就能看到了。

版本提測

issue/2,處理更新日志,版本號等內容,對應issue 2

每個團隊的開發(fā)節(jié)奏都不同,有的團隊會每日持續(xù)集成發(fā)版本提測,有的可能兩天一次,這個就不深入討論了......

那么當我們準備提測時,應該怎么做呢?

通過上節(jié)的了解,我們已經知道,迭代內的功能需求都會通過feature/xxx分支合入到develop分支。

提測前,一般來說,還是要更新下CHANGELOG.mdpackage.json的版本號,可以由Maintainer或其他負責該項事務的同學執(zhí)行。

主要是執(zhí)行npm version major/minor/patch -m 'something done',具體操作可以參考前端自動化部署的深度實踐一文。

git checkout -b issue/2 origin/develop
npm version minor -m '迭代1第一次提測'
git push origin HEAD
然后發(fā)起merge request合入develop分支

此時,應以最新的develop分支代碼在開發(fā)環(huán)境跑一遍功能,保證版本自測通過。

提測時,由Maintainer發(fā)起Merge Request,將develop分支代碼合入release分支,此時自動觸發(fā)Gitlab CI/CD,自動構建并發(fā)布至測試環(huán)境。

版本提測后,各責任人應在TAPD上將相關需求和缺陷的狀態(tài)變更為**“測試中”**。

修復測試環(huán)境bug

bug/3,一個bug分支,對應issue 3

這里說的是在迭代周期內由測試工程師發(fā)現的測試環(huán)境中的系統(tǒng)bug,這些bug會被記錄在敏捷開發(fā)協(xié)作平臺TAPD上。修復測試環(huán)境bug的步驟與開發(fā)需求類似,這里簡單說下步驟:

  1. 在Gitlab上創(chuàng)建issue

    創(chuàng)建issue,并附上TAPD上的缺陷鏈接,方便追溯

  2. 創(chuàng)建分支&修復缺陷

    基于develop分支創(chuàng)建分支:

    // 3是issue號
    git checkout -b bug/3 origin/develop

    接著改代碼......

  3. commit & push

    PS D:\projects\gitlab\project_xxx> git cz
    [email protected], [email protected]

    ? Select the type of change that you're committing: fix: A bug fix
    ? What is the scope of this change (e.g. component or file name): (press enter to skip)
    ? Write a short, imperative tense description of the change (max 95 chars):
    (11) 修復一個測試環(huán)境bug
    ? Provide a longer description of the change: (press enter to skip)

    ? Are there any breaking changes? No
    ? Does this change affect any open issues? Yes
    ? If issues are closed, the commit requires a body. Please enter a longer description of the commit itself:
    -
    ? Add issue references (e.g. "fix #123", "re #123".):
    fix #3

    git push origin HEAD
  4. 發(fā)起Merge Request

    開發(fā)人員發(fā)起Merge Request,請求將自己修復缺陷引入的代碼合入develop分支。

    然后Maintainer需要Review代碼,同意本次Merge Request。

  5. 等待回歸測試

    bug將在下一次CI/CD后,進入回歸測試流程。

  6. 級別高的測試環(huán)境Bug

    如果是級別很高的bug,比如影響了系統(tǒng)運行,導致測試人員無法正常測試的,應以release分支為基礎創(chuàng)建bug分支,修改完畢后合入release分支,再發(fā)起cherry pick合入develop分支。

發(fā)布至生產環(huán)境

經過幾輪持續(xù)集成和回歸測試后,一個迭代版本也慢慢趨于穩(wěn)定,此時也迎來了激動人心的上線時間。我們要做的就是把通過了測試的release分支合入master分支。

release合入master

這一步相對簡單,但是要特別注意權限控制(防止生產環(huán)境事故),具體權限控制可以回頭看第一章節(jié)分支管理。

release分支類似,master分支自動觸發(fā)Gitlab CI/CD,自動構建并發(fā)布至生產環(huán)境

線上回滾

revert/4,一個回滾分支,對應issue 4

代碼升級到線上,但是發(fā)現報錯,系統(tǒng)無法正常運行。此時如果不能及時排查出問題,那么只能先進行版本回退操作。

先說說慣性思維下,我的版本回退做法。

首先還是創(chuàng)建issue記錄下:

創(chuàng)建記錄回滾的issue

基于master分支創(chuàng)建revert/4分支

git checkout -b revert/4 origin/master

假設當前版本是1.1.0,我們想回退到上個版本1.0.3。那么我們需要先查看下1.0.3版本的信息。

PS D:\tusi\projects\gitlab\projectname> git show 1.0.3
commit 90c9170a499c2c5f8f8cf4e97fc49a91d714be50 (tag: 1.0.3, fix/1.0.2_has_bug)
Author: tusi <[email protected]>
Date: Thu Feb 20 13:29:31 2020 +0800

fix:1.0.2

diff --git a/README.md b/README.md
index ac831d0..2ee623b 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,8 @@

只想修改舊版本的bug,不改最新的master

+1.0.2版本還是有個版本,再修復下
+
特性2提交

特性3提交

主要是取到1.0.3版本對應的commit id,其值為90c9170a499c2c5f8f8cf4e97fc49a91d714be50

接著,我們根據commit id進行reset操作,再推送到遠程同名分支。

git reset --hard 90c9170a499c2c5f8f8cf4e97fc49a91d714be50
git push origin HEAD

接著發(fā)起Merge Requestrevert/4分支合入master分支。

回滾分支合入master

一般來說,這波操作沒什么問題,能解決常規(guī)的回滾問題。

臨時變通

由于master分支是保護分支,設置了不可push。如果不想通過merge的方式回滾,所以只能先臨時設置Maintainer擁有push權限,然后由Maintainer進行回滾操作。

git checkout master
git pull
git show 1.0.3
git reset --hard 90c9170a499c2c5f8f8cf4e97fc49a91d714be50
git push origin HEAD

完事后,還需要記得把master設置為不可push。

Q: 為什么不讓Maintainer一直擁有masterpush權限?

A: 主要還是為了防止出現生產環(huán)境事故,給予臨時性權限更穩(wěn)妥!

git reset --hard存在什么問題?

如題,git reset --hard確實是存在問題的。git reset --hard屬于霸道玩法,直接移動HEAD指針,會丟棄之后的提交記錄,如果不慎誤操作了也別慌,還是可以通過查詢git reflog找到commitId搶救回來的;git reset后還存在一個隱性的問題,如果與舊的branch進行merge操作時,會把git reset回滾的代碼重新引入。那么怎么解決這些問題呢?

一籌莫展

別慌,這個時候你必須掏出git revert了。

Q: git revert的優(yōu)勢在哪?

A: 首先,git revert是通過一次新的commit來進行回滾操作的,HEAD指針向前移動,這樣就不會丟失記錄;另外,git revert也不會引起merge舊分支時誤引入回滾的代碼。最重要的是,git revert在回滾的細節(jié)控制上更加優(yōu)秀,可解決部分回滾的需求。

舉個栗子,本輪迭代團隊共完成需求2項,而上線后發(fā)現其中1項需求有致命性缺陷,需要回滾這個需求相關的代碼,同時要保留另一個需求的代碼。

我太難了

首先我們查看下日志,找下這兩個需求的commitId

PS D:\tusi\projects\test\git_test> git log --oneline
86252da (HEAD -> master, origin/master, origin/HEAD) 解決沖突
e3cef4e (origin/release, release) Merge branch 'develop' into 'release'
f247f38 (origin/develop, develop) 需求2
89502c2 需求1

我們利用git revert回滾需求1相關的代碼

git revert -n 89502c2

這時可能要解決沖突,解決完沖突后就可以push到遠程master分支了。

git add .
git commit -m '回滾需求1的相關代碼,并解決沖突'
git push origin master

感覺還是菜菜的,如果大佬們有更優(yōu)雅的解決方案,求指導??!

修復線上bug

hotfix/5,一個線上熱修復分支,對應issue 5

比如線上出現了系統(tǒng)無法登錄的bug,測試工程師也在TAPD提交了缺陷記錄。那么修復線上bug的步驟是什么呢?

  1. 創(chuàng)建issue,標題可以從TAPD中的Bug單中copy過來,而描述就貼上Bug單的鏈接即可。

  2. 基于master分支創(chuàng)建分支hotfix/5。

    git checkout -b hotfix/5 origin/master
  3. 擼代碼,修復此bug......

  4. 修復完此bug后,提交該分支代碼到遠程倉庫同名分支

    git push origin HEAD
  5. 然后發(fā)起cherry pick合入到masterdevelop分支,并在master分支打上新的版本tag(假設當前最大的tag1.0.0,那么新的版本tag應為1.0.1)。

修復線上舊版本bug

fix/6,一個線上舊版本修復分支,對應issue 6

某些項目產品可能會有多個線上版本同時在運行,那么不可避免要解決舊版本的bug。針對線上舊版本出現的bug,修復步驟與上節(jié)類似。

  1. 創(chuàng)建issue,描述清楚問題

  2. 假設當前版本是1.0.0,而0.9.0版本出了一個bug,應基于tag 0.9.0創(chuàng)建fix分支。

    git checkout -b fix/6 0.9.0
  3. 修復缺陷后,應打上新的tag 0.9.1,并推送到遠程。

    git tag 0.9.1
    git push origin tag 0.9.1
  4. 如果此bug也存在于最新的master分支,則需要git push origin HEAD提交該fix分支代碼到遠程倉庫同名分支,然后發(fā)起cherry pick合入到master,此時很大可能存在沖突,需要解決沖突。

    cherry pick

cherry pick

在了解到cherry pick之前,我一直認為只有git merge可以合并代碼,也好幾次遇到合入了不想要的代碼的問題。有了cherry pick,我們就可以合并單次提交記錄,解決git merge時合并太多不想要的內容的煩惱,在解決bug時特別有用。

git rebase

經過這段時間的使用,我發(fā)現使用git merge合并分支時,會讓git logGraph圖看起來有點吃力。

PS D:\tusi\projects\gitlab\projectname> git log --pretty --oneline --graph
* 7f513b0 (HEAD -> develop) Merge branch 'issue/55' into 'release'
|\
| * 1c94437 (origin/issue/55, issue/55) fix: 【bug】XXX1
| * c84edd6 Merge branch 'release' of host:project_repository into release
| |\
| |/
|/|
* | 115a26c Merge branch 'develop' into 'release'
|\ \
| * \ 60d7de6 Merge branch 'issue/30' into 'develop'
| |\ \
| | * | 27c59e8 (origin/issue/30, issue/30) fix: 【bug】XXX2
| | | * ea17250 Merge branch 'release' of host:project_repository into release
| | | |\
| |_|_|/
|/| | |
* | | | 9fd704b Merge branch 'develop' into 'release'
|\ \ \ \
| |/ / /
| * | | a774d26 Merge branch 'issue/30' into 'develop'
| |\ \ \
| | |/ /

接著我就了解到了git rebase,變基,哈哈哈。由于對rebase了解不深,目前也不敢輕易改用rebase,畢竟rebase還是有很多隱藏的坑的,使用起來要慎重!在這里先挖個坑吧,后面搞懂了再填坑......

注意事項

  1. 一般而言,自己發(fā)起的Merge Request必須由別的同事Review并同意合入,這樣更有利于發(fā)現代碼問題。
  2. 對了,TAPD還支持與Gitlab協(xié)同的。詳情見源碼關聯指引[2]。

結語

實踐證明,這套Git工作流目前能覆蓋我項目開發(fā)過程中的絕大部分場景。不過要注意的是,適合自己的才是最好的,盲目采用別人的方案有時候是會水土不服的。

以上所述純屬前端小微團隊內部的Gitlab實踐,必然存在著很多不足之處,如有錯誤之處還請指正,歡迎交流。

參考資料

[1]

TAPD: https://www.tapd.cn/

[2]

源碼關聯指引: https://www.tapd.cn/help/view#1120003271001001346



最近上市的新書《前端函數式演進》是一部寫給前端工程師的函數式編程實戰(zhàn)指南,由阿里本地生活企業(yè)訂餐前端負責人撰寫。


作者結合自己在前端領域的大量工程實踐經驗,首先從前端開發(fā)者的角度介紹了函數式編程在前端領域的演進,以及前端必備的函數式編程知識;然后對React和RxJS等流行前端工具的函數式編程功能和思想進行了深入剖析,既可以幫助讀者更好地理解和使用這些工具,又能給予讀者技術選型方面的建議。此外,書中提供了平臺級別的前端開發(fā)示例的多種實現,方便讀者結合書中的理論進行印證和思考。



這本書還是挺不錯的,推介一下 ,最后給本公眾號粉絲送出 12 個小禮物(在下大出血),包括 3 本前端函數式演進。


廢話少說,抽獎在下面:



瀏覽 74
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 成人AV三级片| 亚洲无码视频观看| 天堂中文资源在线| 日本A片在线播放| 五月天久久久久| 九九久久精品视频| 中国少妇xxx| 欧美日本成人网站入口| 无码在线免费观看视频| 蜜桃传媒一区二区亚洲| Chinese搡老女人| 中文字幕在线中文| 日本国产欧美| 日韩美女性爱| 猫咪亚洲AV成人无码电影| 无码一区二区北条| 青娱乐亚洲| 久操国产| 啊啊啊网站| 欧美一区二区三区精品| 久久久久无码国产精品不卡| 日韩免费三级| 久久午夜无码人妻精品蜜桃冫| 无码草| 午夜探花视频| 丁香婷婷色五月激情综合三级三级片欧美日韩国 | 日本高潮视频| 久久久久久久久久久成人| 男女操逼视频网站| 亚洲在线无码| 欧美性生交18XXXXX无码| www.有码99| 国产婷婷五月天| 免费看欧美成人A片| 操碰在线视频| 国产精品揄拍一区二区| 日本黄色视频免费观看| 操逼操逼操逼操逼| 无码人妻一区二区三区免费n鬼沢| 久久婷婷综合网| 色色色色五月| 亚洲AV无码专区在线播放中文| 久久色片| 大地中文资源5页的更新内容| 亚洲经典一| 国精产品一区二区三区在线观看| 中文无码精品欧美日韩| 国产色五月视频| 狠狠干综合| 狠狠干狠狠干| 午夜社区| 日韩AV在线电影| www欧美| 午夜激情AV| 日韩久久免费视频| 国产亚洲中文字幕| 精品人妻二区中文字幕| 亚洲视频在线免费播放| 操逼电影网| 国产视频福利在线| 国精产品久拍自产在线网站| 蜜臀av一区二区| 国产毛片在线视频| 日本无码免费视频| 国产激情啪啪| 国产成人a亚洲精品无码| 久久久久久久久久久成人| 微熟女地址导航| 亚洲不卡中文字幕| 色五月AV| 午夜成人在线视频| 男女做爱网站| 伊人影院在线观看| 家庭乱伦av| 操逼操123| 日本大香蕉伊人| 内射视频在线免费观看| 三级午夜在线无码| 免费色网站| 有码一区二区三区| 国精产品一二四区黑人| 在线成人免费视频| 香蕉视频在线看| 亚洲自拍电影| 五月婷婷深深爱| 亚洲免费在线视频观看| 五月天黄色小说| 蜜桃传媒一区二区亚洲AV| 中文字幕乱码人妻二区三区| 亚洲无码福利| 久久9热| 亚洲日韩精品中文字幕| 91精品婷婷国产综合久久韩漫| 中文有码| 女人卖婬视频播放| 色色色成人视频| 日本a一级片| 人人人操人人| 日韩免费在线观看| 在线观看免费人成视频| 日韩一区二区三区四区久久久精品有吗 | 99热国产在线| 大香蕉电影网| 午夜亚洲国产一区视频网站 | 97色色五月天| 亚洲无码一级| 国产一区二区在线视频| 欧美操B视频| 97超碰人人| 免费av网站| 日本成人午夜福利| 亚洲va欧美va天堂v国产综合| 男女视频网站在线观看| 国产激情综合在线| 影音先锋中文字幕av| 日本黄色视频网| 色老板最新地址| 熟妇女人妻丰满少妇中文字幕 | 日本久久不卡| 一卡二卡三卡无码| gogogo日本免费观看高清电视剧的注意| 久草电影在线观看| 欧美av| 国产在线精品观看| 亚洲色一区二区| 99视频热| 99无码秘蜜桃人妻一区二区三区| 日韩成人在线视频| 成人做爱免费看| 无码任你操| 懂色AV无码中字幕一区| 69国产成人综合久久精品欧美| 91超碰人人| 天堂俺去俺来也www久久婷婷| 国产91精品在线观看| 黄色一级片网站| 无码AV在线播放| 91综合在线| 一区二区三区视屏| 先锋成人影音| 日韩一区二区高清无码| 99re超碰| 怮交小拗女小嫩苞视频| 一级A黄色片| 国产乱婬AAAA片视频| 国产三级| 日韩不卡免费| 狼友在线播放| 一本色道久久无码人妻精品69| 一区二区三区四区五区无码| 丁香五月欧美激情| 成人啪啪视频| 巨い巨乳の少妇あジed2k| 中字无码AV| 大香蕉青青| 激情国产AV| 日韩三级片网址| 51精品国产午夜福利| 神马午夜影院| 天堂网色| 婷婷激情av| 农村一级婬片A片AAA毛片古装| 激情小说激情视频| 国产免费久久| 欧美成人A片在线观看| 久草网大香蕉| 亲子乱婬-一级A片| 国产激情无码免费| 美女乱伦视频| 2025av天堂网| 欧美精品在线视频| 日本a在线| 亚洲性爱专区| 欧洲黑种人日P视频| 成人丁香| 大香蕉中文网| 欧美乱欲视频| 久久婷婷网| 亚洲va欧洲va国产va不卡| 午夜成人福利剧场| av在线直播| 国产黃色AAA片| 国产三级黄色视频| 欧美自拍视频| 日欧一级片| 中文字幕第一页av| 小h片| 蜜桃视频网站18| www国产亚洲精品久久网站| 亚洲婷婷三级成人网| 午夜精品成人| 18禁看网站| 欧美一级欧美三级在线观看| 99热在线观看精品免费| 人人摸人人艹| www.大吊视频| 国产99久久久精品| 国产aaaaaa| 久久探花| 先锋影音麻豆| 中文一级片| 国产三级黄色AV| 丁香激情综合| 国产成人自拍偷拍视频| 婷婷男人天堂| 在线A片免费观看| 中文字幕12页| 青草视频在线免费观看| 五月婷婷六月激情| 日皮做爱视频网站| 91国产精品在线视频| 成人精品一区日本无码网站suv| 嫩苞又嫩又紧AV无码| 亚洲黄色录像| 国产操逼网站| 水果派解说AV无码一区| 青娱乐网站| av在线直播| 激情六月天| 国产欧美视频在线| 在线视频内射| 久久色资源| 欧美一级一级| 午夜成人三级| 青娱乐无码视频| 99一区| 人人妻人人爽人人精品| 久久久久久久| 国产精品免费一区二区三区四区视频 | a级无码| 99久久精品国产一区色| 性爱一级视频| 午夜免费无码| 黄色小视频免费观看| 翔田千里被操120分钟| 蜜桃精品无码| 啊啊啊啊啊网站| 黄色片在线免费观看| 日韩av电影免费在线观看| 欧美成人精品网站| 麻豆mdapp01.tⅴ| 91国产视频在线播放| 国产色悠悠| 久久久久久久久国产| 亚洲乱伦| 爱爱视频天天操| 欧美亚洲一区二区三区| 久久香蕉网| 狠狠做深爱婷婷久久综合一区| 欧美色图综合| 国产毛片在线| 超碰在线播| 超碰性爱| a无码| 黄色大片网址| 亚洲专区中文字幕| 三级片AAA成人免费| 人人摸人人爱人人操| 国产五月婷婷| 亚州无码| 北条麻妃99精品青青久久| 天天色天天日天天干| 亚洲AV官方网站| 日韩日批视频| 91欧美视频| 中文字幕一区二区蜜桃| 国产成人TV| 亚洲国产精品久久人人爱| 久久久久久三级电影| 另类老妇性BBwBBw图片| 亚洲成人视频在线| 丁香花中文字幕| 麻豆成人精品国产免费| 91Av视频| 东京热av一区二区| 精品资源成人| 老司机狠狠干| 大香蕉五月丁香| 日韩五码| 日本色影院| 日本A在线观看| 超碰9| 无码免费毛片| 天天操夜夜撸| 暴操美女网站| 在线观看亚洲专区| 97人人干| 九色PORNY丨自拍蝌蚪| 俺来也网| 一本免费视频| 特级艺体西西444WWw| 人人操人人射| 日韩欧美成人片| 一区二区三区无码在线观看| 免费看黄色电影| 欧美中文字幕在线播放| 江苏妇搡BBBB搡BBBB-百度| 日韩免费高清无码视频| 超碰在线观看91| 一区二区三区小视频| 黄色操逼| 久久R5| 国产精品久久免费| 无码在线免费观看视频| 天堂色播| 久久草在线| 天堂av中文字幕| 国产一级婬片A片免费无成人黑豆 国产真实露脸乱子伦对白高清视频 | 精品久久久久久亚洲| 91人妻无码精品蜜桃| 婷婷激情五月综合| 欧美VA视频| 殴殴美日韩在线| 狼友自拍| 午夜精品秘一区二区三区| 久久久永久免费视频| 成人av免费在线观看| 国产高清在线免费观看AV片| 国产精品无码专区AV免费播放 | 狠狠草狠狠干| 思思热这里只有精品| 一区二区日本| 日韩精品一区二区三区四区| 狠狠操免费视频| 91内射| 天堂久久久久| 欧美一区二区无码视频| BBw日本熟妇BBwHD| 三级片在线视频| 黄色三级A片| 俺也去av| 操老骚逼视频| AV无码免费观看| 激情婷婷丁香| 韩日一区| 狠狠搞狠狠操| 国产在线视频你懂的| 制服.丝袜.亚洲.中文.豆花 | 激情五月天网址| 日韩综合不卡| 99精品视频免费看| 精品九九九九九九| 国产精品无码天天爽视频| 91麻豆天美传媒在线| 综合色婷婷一区二区亚洲欧美国产 | 日韩美女在线| 国产最新在线| 韩国精品无码| 亚洲AV无码一区二区三区少妇 | 99热1| 五月激情六月| 九九免费视频| 亚洲精品伊人| 中文字幕日本欧美| 操屄网| 亚洲一线播放| 国产视频一区二区三区四区五区| 国产一级二级三级视频| 91人妻人人澡人人爽人人精品乱| 囯产伦精一区二区三区四区| 天天爽夜夜爽人人爽| 欧美老妇大BBBBXXXX| 日本丰满老熟妇乱子伦| 91视频网站入口| 日韩欧美成人在线| 亚洲黄色小电影| 国产高清精品软件丝瓜软件| 亚洲91成人| 在线不欧美| 日本在线一区二区| 国产亚洲久一区二区| 黄片51| 黄片Av| 天天草天天| 综合激情av| 中文字幕亚洲区| 精品秘一区性综合三区| 韩国无码免费| 91ccc| 中文字幕在线免费| 美女操B| 亚洲午夜久久久之蝌蚪窝| 国产精品免费一区二区三区都可以 | 国产有码视频| 黄色一级视频在线观看| 18禁网址| AV手机在线| 一本色道久久88综合无码| 夜夜爽天天爽| 波多野吉衣av| 欧美日韩成人在线| 欧美性爱69| 高清无码免费在线视频| 国产又大又粗| 探花在线播放| 无码人妻一区二区三区| 精品一区二区三区四区五区六区| 欧美日韩有码视频网址大全| 亚洲香蕉在线视频| 欧美特黄AAAAAA| 成人无码区免费AV毛片| 婷婷五月天色播| 欧洲尤物不卡播放六区| 无码一区二区在线观看| 精品女同一区二区三区四区外站在线| 爱射综合| 翔田千里无码播放| 少妇人妻偷人精品无码视频新浪 | 欧美a片在线| 91天天综合在线| 人人肏| 国产视频a| 婷婷五月天激情俺来也| 精品无码人妻一区二区| 免费观看的av| 婷婷国产亚洲精品网站| 国产精品99视频| 任你爽在线视频| 老熟女-ThePorn| 污视频网站免费在线观看| 一级黄片免费看| 久久无码高清| 亚洲丁香五月天| 国产精品成人片| 四个熟妇搡BBBB搡BBBB| 欧美日韩亚洲一区二区三区| 特级西西WWW888| 成人久久综合| 日韩一a| 少妇嫩搡BBBB搡BBBB| 在线视频福利导航| 日日夜夜爽歪歪| 亚洲欧洲日韩| 精品免费在线| 插丰满少妇在线观看| 久久与婷婷| 黄色视频在线观看| 一区二区三区久久久| 欧美亚洲日韩一区二区三区| 高清毛片AAAAAAAAA郊外| 超碰久草| 中文字幕福利视频| 7777精品伊人久久7777| 一区二区AV| 97亚洲精品| 这里视频很精彩免费观看电视剧最新 | 精品人妻一区二区三区四区不卡在| 欧美A在线| 国产精品国产三级囯产普通话2| 欧美高清无码| 一级a一级a爱片免费免免高潮| 男女一区二区| 中文午夜福利| 色婷婷色五月| 俺来也听听婷婷| 国产美女一级特黄大片| 3D动漫精品啪啪一区二区下载| 日本一级片| 蜜芽人妻在线| 国产人妖视频| 色婷婷视频网站| 麻豆999| 精品乱子伦一区二区三区,亚洲国产成 | 极品av| 内射学生妹J亅| 五月网| 日韩高清在线播放| 精品三级在线观看| 免费看AV大片| 久久精品三级| 西西444WWW无码大胆知乎| 手机无码在线播放| 黄网在线| 久久久久久久久国产| 超碰97在线精品国产| 久久黄色A片| www.天天日| 家庭乱伦av| 搡BBB搡BBBB搡BBBB'| 青青操国产乱伦| 毛片视频免费观看| 谁有毛片网站| 黑人无码AV| 欧美性爱精品一区| 91免费视频观看| AV乱伦小说| 日韩AV网站在线观看| 亚洲无码天堂| 一级片免费视频| 91超碰人人| 五月丁香亚洲综合| 黄色操逼视频| 成人视频在线观看免费| 香蕉视频成人在线| 三级乱伦视频| 丝袜美女足交| 国产免费小视频| 热久在线| A片在线免费| 欧美A一| 人人插人人| 亚洲精品成人av无码| 色婷婷久久综合| 曰韩一级A片| www.亚洲无码| 中国操逼视频| 九九久久99| 另类BBwBBw| 综合激情五月婷婷| 免费国产视频| 国产成人无码免费看片| 亚洲精品免费在线观看| 成年人免费公开视频| 日韩人妻精品无码久久边| 日韩色情视频| 婷婷丁香五月社区亚洲| 色777网站| 亚洲成人电影天堂| 国产精品免费av在线| 国产精品成人免费精品自在线观看 | 制服.丝袜.亚洲.中文豆花| 色欲av伊人久久大香线蕉影院| 久久成人无码| 亚洲黄色在线免费观看| 翔田千里无码流出两部| 亚洲成人高清| 国产精品人妻AⅤ在线看| 探花在线综合| 欧美色爽| 天堂久久av| 91在线免费视频| 在线无码人妻| AV色片| 在线免费看黄视频| 久久久WWW成人免费无遮挡大片| 国产精品乱草| 九九热精品视频| 午夜AV无码| 黄色操逼| 日韩中出视频| 欧美成人A片AAA片在线播放| 日本欧洲三级| 九九热精品| 亚洲一区中文字幕| 69精品无码成人久久久久久| 欧美久久大香蕉| 精品国精品自拍自在线| 性满足BBwBBWBBw| 日韩在线| 欧美日韩精品在线观看| 操逼观看| 天天撸一撸视频| 亚洲砖区区免费| 骚骚肥肥一区二区三区| 91麻豆国产福利精品| 国产精品视频在线观看| 高清国产av| 天天色色综合| 婷婷成人综合| 亚洲电影在线| 国产精品国产三级国产AⅤ中文 | 操逼动漫| 婷婷丁香五月激情| 久久亚洲免费视频| 在线免费观看视频黄| 亚洲天堂成人在线| 99r6热只有精品免费观看| 日本高清视频网站| 久久偷拍视频| 精品人妻一区二区三区日产| 偷拍视频网站| 成人精品无码免费视频| 在线观看中文字幕AV| 日本黄色电影在线观看| 亚洲三级黄片| 免费视频在线观看黄| 蜜桃精品久久久| 熟女视频国产| 中文字幕av在线观看| 天天色av| 日本黄色视频网址| 欧美成人精品在线观看| 东方av在线免费观看| 澳门无码视频| 日韩欧美成人网| 91视频熟女| 亚洲人在线观看| 东京热久久综合色五月老师| 人妻少妇视频| 日韩色| 久久久久久亚洲AV无码专区| 国产黄片免费在线观看| 69国产精品成人无码视频色| 国产com| 国产精品你懂得| 日韩精品极品视频在线观看免费| 日韩av无码中文字幕| 午夜av免费| 国产麻豆精品ThePorn| 成人AV免费| 亚洲欧美色图| 日韩无码视频一区| 国产粉嫩| 韩国无码免费| 黄色一级片视频| 一道本高清无码| 少妇高潮无码| 翔田千里无码破解| 中文字幕高清无码在线观看| 2014av天堂网| 影音先锋男人资源网| 色哟哟一中文字慕| 久久久久黄片| 北京熟妇搡BBBB搡BBBB电影 | 日韩无码1| 97天天操| 97免费在线视频| 色综合五月婷婷| 麻豆疯狂做受XXXX高潮视频| 伊人久久AV诱惑悠悠| 91热99| 国产激倩都市一区二区三区欧美 | 久久狠| 亚洲三级片在线观看| yw在线观看| 91日韩| 国产成人视频在线观看| 免费无码视频在线观看| 潮喷在线| 午夜激情视频| 久久无码精品| A片免费网站| 亚洲高清在线观看视频| 黄色av免费在线观看| 日韩视频无码| 久久精品视频免费观看| 成人自拍视频在线观看| 91乱子伦国产乱子伦海的味道 | 超碰天天爱| 亚洲精品国产成人综合久久久久久久久 | 天堂中文在线观看| 在线中文字幕网站| 天天爽天天干| 亚洲日韩中文字幕| 在线免费无码| 久久黄色片| 日韩无码精品视频| 麻豆91麻豆国产传媒| 欧美一区二区三区视频| 亚洲中文在线视频| 久久久久久国产| 日韩AV在线免费观看| 亚洲精品成人无码| 91内射| 网络自拍亚洲激情| 健身房被教练3p喷水了| 成人小视频十八禁免费观看| 亚洲欧美在线综合| www,操逼| 久久六月天| 五月丁香在线播放| 亚洲成人第一网站| 亚洲国产成人精品女人久久| 成人av小说网站| 欧美性猛交一区二区三区| 在线观看AV91| 色四播播| 四虎影库男人天堂| 欧美日韩高清一区| 人人干AV| 黄色福利网| 午夜福利123| 男人的天堂aa| 国产aaaaaa| 日本理论片一道本| 少妇推油呻吟白浆啪啪成人片| 色婷婷国产精品| 国产精品无码ThePorn| 丁香五月婷婷六月| 日韩精品成人在线| 国产高清一区二区| 日韩十八禁| 内射视频在线观看| 国产黄网| 欧洲黑种人日P视频| 一本一道vs波多野结衣| 男女怕怕网站| 日韩一区二区三区在线视频| 久久成人影音先锋| 成人精品秘久久久按摩下载 | AⅤ中文字幕在线免费观看| 91少妇精品| 亚洲va欧美va天堂v国产综合| 亚洲精品久久久久毛片A级牛奶 | 无码免费视频| 天天狠天天干| 五月丁香在线播放| 91丨精品丨国产丨丝袜| 亚洲中出| 中文字幕在线一区二区a| 亚洲中文字幕免费在线观看| 北条麻妃在线一区| 国产毛片毛片毛片| 久久国产精品网站| 91牛| 日欧美美女逼| 亚洲精品无码人妻| 午夜一区二区三区免费| 加勒比国产在线| 一个人看的www日本高清视频| 国产高潮白浆喷| 黄色在线视频网站| 中文字幕精品在线观看| 成人一级电影| 亚洲综合激情五月久久| 婷婷色色五月天图片| 水蜜桃视频网站在线观看| 欧一美一婬一伦一区二区三区自慰国| a片在线观看免费| 亚洲欧洲日韩综合| 亚洲人妻系列| 久久久久久久亚洲| 永久黄网站| 日韩视频一区| 成人国产精品在线观看| 二区三区无码| 免费涩涩无遮挡18国产| 日日艹夜夜艹| 欧美日韩国内| 国产精品91视频| 日韩加勒比| 99热精品免费在线观看| 欧美在线观看一区二区| 日本有码中文字幕| AV高清无码在线| 超碰免费观看| 99久久精品国产精品有折扣吗| 日韩精品一区二区三区使用方法| 国产一级婬女AAAA片季秀英| 亚洲福利天堂| 先锋资源日韩| 91在线无码精品在线看| 国产成人精品久久久| 成人av一区| 日韩无码视频一区| 国产操屄网| 黄色大片免费网站| 精品少妇人妻一区二区| 亚洲国产成人91PORN| 国产A视频| 日韩精品三区| 五月天婷婷AV| 蜜桃精品无码| 97精品欧美91久久久久久久| 啊啊啊啊啊网站| 人人干人人摸人人操| 甘肃WBBBB搡wBBBB| 天天摸天天肏| 精品啪啪| 国产黄色视频网站在线观看| 无码在线电影| 影音先锋成人AV| 逼逼爱插插网站| 久久久久久久久久久久国产精品| 9l视频自拍九色9l视频成人| 麻豆久久久久| 在线无码人妻| 亚洲综合社区在线| 一本色道久久88亚洲精品综合| 香蕉成人网站| 亚洲成人第一页| 日朝无码| 久久R5| 好吊妞操| 欧美人操逼视频| 色呦呦一区二区三区| 嫩BBB嫩BBB嫩BBB| 日韩无码专区电影| 免费观看黄色在线视频| 大香蕉在8线| 久久WW| 强伦轩一区二区三区四区播放方式| 精品无码久久久久久久久app| 偷自拍| 精品无码人妻一区二区三区| 99热这里只有精品1| 婷婷操逼| 五月天婷婷在线播放视频免费观看| 亚洲天堂在线视频播放| 深夜福利av| 成年人观看视频| www伦理片-韩国三级三级三级a三级-成人AV | 人妻japanesewoman| 色丁香五月| 成人性爱在线视频| 三级久久久| 超碰69| 亚洲中文字幕第一| 一本色道久久| 欧美大香蕉在线视频| 嫩草人人精品免费| 国产婷婷内射| 99爱免费视频| 黄色影院在线观看| 麻豆一级片| 在线日韩一区二区| 青草青草视频| 激情图区| 色秘乱码一区二区三区| 亚洲成人欧美| 久久久久9| 一级免费黄片| 4080yy午夜理论片成人| 日韩无码电影| 中文字幕免费在线播放| 三级片视频网站| 91巨乳| 综合激情AV| 一道本一区| 亚洲精品视频在线观看网站| 国产思思99re99在线观看| 亚洲v在线观看| 国产熟女乱伦视频| 婷婷久草网| 91三级片网站| 亚洲中文娱乐| 91青青草| AV国产高清| 亚洲高清成人动漫| 六月色婷婷| 成人一区二区在线| 99er在线| 五月天最新网址| 韩日不卡视频| 亚洲三级电影在线观看| 92丨九色丨偷拍老熟女| 嫩BBB嗓BBBB榛BBBB| 九色丨蝌蚪丨老版熟女| 做爰视频毛片下载蜜桃视频。| 国产一级AAAAA片免费| 欧美在线观看一区二区| 国产毛片一区| 91成人精品视频| 国产精品可站18| 超碰极品| 亚洲成人av在线观看| 在线观看高清无码中文字幕| 日韩一级性爱视频| 日韩日屄视频| 韩国深夜福利视频| 久久亚洲AV成人无码国产野外| 久久婷婷六月综合| 97国产精品| 狠狠操免费| JLZZJLZZ亚洲女人| 欧美日韩在线观看视频| 99热99re6国产线播放| 欧美日一区二区三区| 日本高清无码| 制服丝袜一区| 99东京热| 欧美乱伦视频| 天天爽夜夜爽夜夜爽| 欧美国产日本| 欧美三级在线| 久久午夜无码人妻精品蜜桃冫| 大香蕉在线伊| www.国产豆花精品区| 91热爆TS人妖系列| 欧美色999| 国产婷婷色一区二区| 午夜特级| 久久人人爱| 日日干天天日| 玖玖在线播放| 特级特黄AAAAAAAA片| 中文字幕一二三| 91毛片在线观看| 奇米色色| 欧美香蕉在线| 男女www视频| 亚洲精品一区无码A片丁香花| 蜜桃视频com.www| 91女人18毛片水多的意思| 久久成人A片| 97国产资源| 国产高清无码免费| 撸撸综合网| 亚洲日本黄色视频| 韩日无码| 一级黄色免费视频| 免费高清无码在线观看| 婷婷成人小说| 成人免费视频一区二区| 无码免费播放| 嫩草国产在线| 翔田AV无码秘三区| 超碰中文在线| 老熟妇搡BBBB搡BBBB| 亚洲欧美成人在线|