精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Git各指令的本質,真是通俗易懂啊

系統 Linux
今天我就將這幾年對Git的認知和理解分享出來,盡可能的從本質去講解Git,幫助你一步一步去了解Git的底層原理,相信讀完本篇文章你便可以換種姿態,更加風騷得使用Git各種指令。

前言

作為當前世界上最強大的代碼管理工具Git相信大家都很熟悉,但據我所知有很大一批人停留在clone、commit、pull、push...的階段,是不是對rebase心里沒底只敢用merge?

碰見版本回退就抓瞎?別問我怎么知道的,問就是:“我曾經就是這樣啊~~”。

針對這些問題,今天我就將這幾年對Git的認知和理解分享出來,盡可能的從本質去講解Git,幫助你一步一步去了解Git的底層原理,相信讀完本篇文章你便可以換種姿態,更加風騷得使用Git各種指令。

目錄

  •  1. 基本概念
    • 1.1 Git的優勢
    • 1.2 文件狀態
    • 1.3 commit 節點
    • 1.4 HEAD
    • 1.5 遠程倉庫
  •  2. 分支
    •  2.1 什么是分支?
  •  3. 命令詳解
    •  3.1 提交相關
    •  3.2 分支相關
    •  3.3 合并相關
    •  3.4 回退相關
    •  3.5 遠程相關

1.基本概念

1.1 Git的優勢

Git是一個分布式代碼管理工具,在討論分布式之前避免不了提及一下什么是中央式代碼管理倉庫

  •  中央式:所有的代碼保存在中央服務器,所以提交必須依賴網絡,并且每次提交都會帶入到中央倉庫,如果是協同開發可能頻繁觸發代碼合并,進而增加提交的成本和代價。最典型的就是svn
  •  分布式:可以在本地提交,不需要依賴網絡,并且會將每次提交自動備份到本地。每個開發者都可以把遠程倉庫clone一份到本地,并會把提交歷史一并拿過來。代表就是Git

那Git相比于svn有什么優勢呢?

打個比方:"巴拉巴拉寫了一大堆代碼,突然發現寫的有問題,我想回到一個小時之前",對于這種情況Git的優勢就很明顯了,因為commit的成本比較小并且本地會保存所有的提交記錄,隨時隨刻可以進行回退。

在這并不是說svn的不能完成這種操作,只是Git的回退會顯得更加的優雅。Git相比于中央式工具還有很多優點,就不一一列舉了,感興趣的可自行了解。

1.2 文件狀態

在Git中文件大概分為三種狀態:已修改(modified)、已暫存(staged)、已提交(committed)

  •  修改:Git可以感知到工作目錄中哪些文件被修改了,然后把修改的文件加入到modified區域
  •  暫存:通過add命令將工作目錄中修改的文件提交到暫存區,等候被commit
  •  提交:將暫存區文件commit至Git目錄中永久保存

1.3 commit節點

為了便于表述,本篇文章我會通過節點代稱commit提交

在Git中每次提交都會生成一個節點,而每個節點都會有一個哈希值作為唯一標示,多次提交會形成一個線性節點鏈(不考慮merge的情況),如圖1-1

節點上方是通過 SHA1計算的哈希值

C2節點包含C1提交內容,同樣C3節點包含C1、C2提交內容

1.4 HEAD

HEAD是Git中非常重要的一個概念,你可以稱它為指針或者引用,它可以指向任意一個節點,并且指向的節點始終為當前工作目錄,換句話說就是當前工作目錄(也就是你所看到的代碼)就是HEAD指向的節點。

還以圖1-1舉例,如果HEAD指向C2那工作目錄對應的就是C2節點。具體如何移動HEAD指向后面會講到,此處不要糾結。

同時HEAD也可以指向一個分支,間接指向分支所指向的節點。

1.5 遠程倉庫

雖然Git會把代碼以及歷史保存在本地,但最終還是要提交到服務器上的遠程倉庫。通過clone命令可以把遠程倉庫的代碼下載到本地,同時也會將提交歷史、分支、HEAD等狀態一并同步到本地,但這些狀態并不會實時更新,需要手動從遠程倉庫去拉取,至于何時拉、怎么拉后面章節會講到。

通過遠程倉庫為中介,你可以和你的同事進行協同開發,開發完新功能后可以申請提交至遠程倉庫,同時也可以從遠程倉庫拉取你同事的代碼。

注意點

    因為你和你的同事都會以遠程倉庫的代碼為基準,所以要時刻保證遠程倉庫的代碼質量,切記不要將未經檢驗測試的代碼提交至遠程倉庫

2.  分支

2.1 什么是分支?

分支也是Git中相當重要的一個概念,當一個分支指向一個節點時,當前節點的內容即是該分支的內容,它的概念和HEAD非常接近同樣也可以視為指針或引用,不同的是分支可以存在多個,而HEAD只有一個。通常會根據功能或版本建立不同的分支。

那分支有什么用呢?

  •  舉個例子:你們的 App 經歷了千辛萬苦終于發布了v1.0版本,由于需求緊急v1.0上線之后便馬不停蹄的開始v1.1,正當你開發的興起時,QA同學說用戶反饋了一些bug,需要修復然后重新發版,修復v1.0肯定要基于v1.0的代碼,可是你已經開發了一部分v1.1了,此時怎么搞?

面對上面的問題通過引入分支概念便可優雅的解決,如圖2-1

  •  先看左邊示意圖,假設C2節點既是v1.0版本代碼,上線后在C2的基礎上新建一個分支ft-1.0
  •  再看右邊示意圖,在v1.0上線后可在master分支開發v1.1內容,收到QA同學反饋后提交v1.1代碼生成節點C3,隨后切換到ft-1.0分支做bug修復,修復完成后提交代碼生成節點C4,然后再切換到master分支并合并ft-1.0分支,到此我們就解決了上面提出的問題

除此之外利用分支還可以做很多事情,比如現在有一個需求不確定要不要上線,但是得先做,此時可以單獨創建一個分支開發該功能,等到啥時候需要上線直接合并到主分支即可。分支適用的場景很多就不一一列舉了。

注意點

當在某個節點創建一個分支后,并不會把該節點對應的代碼復制一份出來,只是將新分支指向該節點,因此可以很大程度減少空間上的開銷。一定要記著不管是HEAD還是分支它們都只是引用而已,量級非常輕

3.  命令詳解

3.1 提交相關

前面我們提到過,想要對代碼進行提交必須得先加入到暫存區,Git中是通過命令 add 實現

添加某個文件到暫存區:

  1. git add 文件路徑 

添加所有文件到暫存區:

  1. git add . 

同時Git也提供了撤銷工作區和暫存區命令

撤銷工作區改動: 

  1. git checkout -- 文件名 

清空暫存區: 

  1. git reset HEAD 文件名 

提交:

將改動文件加入到暫存區后就可以進行提交了,提交后會生成一個新的提交節點,具體命令如下: 

  1. git commit -m "該節點的描述信息" 

3.2 分支相關

創建分支

創建一個分支后該分支會與HEAD指向同一節點,說通俗點就是HEAD指向哪創建的新分支就指向哪,命令如下:

  1. git branch 分支名 

切換分支

當切換分支后,默認情況下HEAD會指向當前分支,即HEAD間接指向當前分支指向的節點 

  1. git checkout 分支名 

同時也可以創建一個分支后立即切換,命令如下: 

  1. git checkout -b 分支名 

刪除分支

為了保證倉庫分支的簡潔,當某個分支完成了它的使命后應該被刪除。比如前面所說的單獨開一個分支完成某個功能,當這個功能被合并到主分支后應該將這個分支及時刪除。

刪除命令如下:

  1. git branch -d 分支名 

3.3 合并相關

關于合并的命令是最難掌握同時也是最重要的。我們常用的合并命令大概有三個merge、rebase、cherry-pick

merge

merge是最常用的合并命令,它可以將某個分支或者某個節點的代碼合并至當前分支。具體命令如下:

git merge 分支名/節點哈希值

如果需要合并的分支完全領先于當前分支,如圖3-1所示

由于分支ft-1完全領先分支ft-2即ft-1完全包含ft-2,所以ft-2執行了“git merge ft-1”后會觸發fast forward(快速合并),此時兩個分支指向同一節點,這是最理想的狀態。

但是實際開發中我們往往碰到是是下面這種情況:如圖3-2(左)

這種情況就不能直接合了,當ft-2執行了“git merge ft-1”后Git會將節點C3、C4合并隨后生成一個新節點C5,最后將ft-2指向C5 如圖3-2(右)

注意點:

如果C3、C4同時修改了同一個文件中的同一句代碼,這個時候合并會出錯,因為Git不知道該以哪個節點為標準,所以這個時候需要我們自己手動合并代碼

rebase

rebase也是一種合并指令,命令行如下: 

  1. git rebase 分支名/節點哈希值 

與merge不同的是rebase合并看起來不會產生新的節點(實際上是會產生的,只是做了一次復制),而是將需要合并的節點直接累加 如圖3-3

當左邊示意圖的ft-1.0執行了git rebase master后會將C4節點復制一份到C3后面,也就是C4',C4與C4'相對應,但是哈希值卻不一樣。

rebase相比于merge提交歷史更加線性、干凈,使并行的開發流程看起來像串行,更符合我們的直覺。既然rebase這么好用是不是可以拋棄merge了?其實也不是了,下面我羅列一些merge和rebase的優缺點:

merge優缺點:

  •  優點:每個節點都是嚴格按照時間排列。當合并發生沖突時,只需要解決兩個分支所指向的節點的沖突即可
  •  缺點:合并兩個分支時大概率會生成新的節點并分叉,久而久之提交歷史會變成一團亂麻

rebase優缺點:

  •  優點:會使提交歷史看起來更加線性、干凈
  •  缺點:雖然提交看起來像是線性的,但并不是真正的按時間排序,比如圖3-3中,不管C4早于或者晚于C3提交它最終都會放在C3后面。并且當合并發生沖突時,理論上來講有幾個節點rebase到目標分支就可能處理幾次沖突

對于網絡上一些只用rebase的觀點,作者表示不太認同,如果不同分支的合并使用rebase可能需要重復解決沖突,這樣就得不償失了。但如果是本地推到遠程并對應的是同一條分支可以優先考慮rebase。所以我的觀點是 根據不同場景合理搭配使用merge和rebase,如果覺得都行那優先使用rebase

cherry-pick

cherry-pick的合并不同于merge和rebase,它可以選擇某幾個節點進行合并,如圖3-4

命令行: 

  1. git cherry-pick 節點哈希值 

假設當前分支是master,執行了git cherry-pick C3(哈希值),C4(哈希值)命令后會直接將C3、C4節點抓過來放在后面,對應C3'和C4'

3.4 回退相關

分離HEAD

在默認情況下HEAD是指向分支的,但也可以將HEAD從分支上取下來直接指向某個節點,此過程就是分離HEAD,具體命令如下: 

  1. git checkout 節點哈希值  
  2. //也可以直接脫離分支指向當前節點  
  3. git checkout --detach 

由于哈希值是一串很長很長的亂碼,在實際操作中使用哈希值分離HEAD很麻煩,所以Git也提供了HEAD基于某一特殊位置(分支/HEAD)直接指向前一個或前N個節點的命令,也即相對引用,如下: 

  1. //HEAD分離并指向前一個節點  
  2. git checkout 分支名/HEAD^  
  1. //HEAD分離并指向前N個節點  
  2. git checkout 分支名~N 

將HEAD分離出來指向節點有什么用呢?舉個例子:如果開發過程發現之前的提交有問題,此時可以將HEAD指向對應的節點,修改完畢后再提交,此時你肯定不希望再生成一個新的節點,而你只需在提交時加上--amend即可,具體命令如下:

  1. git commit --amend 

回退

回退場景在平時開發中還是比較常見的,比如你巴拉巴拉寫了一大堆代碼然后提交,后面發現寫的有問題,于是你想將代碼回到前一個提交,這種場景可以通過reset解決,具體命令如下: 

  1. //回退N個提交  
  2. git reset HEAD~N 

reset和相對引用很像,區別是reset會使分支和HEAD一并回退。

3.5 遠程相關

當我們接觸一個新項目時,第一件事情肯定是要把它的代碼拿下來,在Git中可以通過clone從遠程倉庫復制一份代碼到本地,具體命令如下:

  1. git clone 倉庫地址 

前面的章節我也有提到過,clone不僅僅是復制代碼,它還會把遠程倉庫的引用(分支/HEAD)一并取下保存在本地,如圖3-5所示:

其中origin/master和origin/ft-1為遠程倉庫的分支,而遠程的這些引用狀態是不會實時更新到本地的,比如遠程倉庫origin/master分支增加了一次提交,此時本地是感知不到的,所以本地的origin/master分支依舊指向C4節點。我們可以通過fetch命令來手動更新遠程倉庫狀態

小提示:

并不是存在服務器上的才能稱作是遠程倉庫,你也可以clone本地倉庫作為遠程,當然實際開發中我們不可能把本地倉庫當作公有倉庫,說這個只是單純的幫助你更清晰的理解分布式

etch

說的通俗一點,fetch命令就是一次下載操作,它會將遠程新增加的節點以及引用(分支/HEAD)的狀態下載到本地,具體命令如下:

  1. git fetch 遠程倉庫地址/分支名 

pull

pull命令可以從遠程倉庫的某個引用拉取代碼,具體命令如下:

  1. git pull 遠程分支名 

其實pull的本質就是fetch+merge,首先更新遠程倉庫所有狀態到本地,隨后再進行合并。合并完成后本地分支會指向最新節點

另外pull命令也可以通過rebase進行合并,具體命令如下:

  1. git pull --rebase 遠程分支名 

push

push命令可以將本地提交推送至遠程,具體命令如下: 

  1. git push 遠程分支名 

如果直接push可能會失敗,因為可能存在沖突,所以在push之前往往會先pull一下,如果存在沖突本地解決。push成功后本地的遠程分支引用會更新,與本地分支指向同一節點。

綜上所述

  •  不管是HEAD還是分支,它們都只是引用而已,引用+節點是 Git 構成分布式的關鍵
  •  merge相比于rebase有更明確的時間歷史,而rebase會使提交更加線性應當優先使用
  •  通過移動HEAD可以查看每個提交對應的代碼
  •  clone或fetch都會將遠程倉庫的所有提交、引用保存在本地一份
  •  pull的本質其實就是fetch+merge,也可以加入--rebase通過rebase方式合并 

 

責任編輯:龐桂玉 來源: 深度學習這件小事
相關推薦

2021-05-25 09:50:01

GitLinux命令

2011-10-26 19:57:33

2019-06-19 08:30:47

網絡協議IPTCP

2023-01-06 09:40:20

項目性能

2020-06-08 10:50:58

前端TypeScript代碼

2022-06-28 07:31:11

哨兵模式redis

2021-05-26 16:12:20

區塊鏈加密貨幣比特幣

2022-09-23 08:32:53

微服務架構服務

2022-07-06 08:17:50

C 語言函數選型

2021-11-04 08:16:50

MySQL SQL 語句數據庫

2019-05-20 07:37:00

TCPIP網絡協議

2018-01-17 22:36:46

區塊鏈數字貨幣比特幣

2021-05-30 19:02:59

變量對象上下文

2018-03-11 15:11:38

物聯網數據物聯網數據

2018-03-05 08:35:12

物聯網互聯網網絡技術

2018-03-29 06:40:26

物聯網

2018-03-11 14:57:07

物聯網組網無線通信

2009-12-31 10:59:22

ADSL技術原理

2019-08-27 09:20:35

微服務架構組件

2023-08-03 16:02:24

Objectwaitnotify
點贊
收藏

51CTO技術棧公眾號

欲香欲色天天天综合和网| 在线观看免费高清视频| 欧美激情影院| 欧洲国内综合视频| 视频一区二区视频| 天天干,夜夜操| 免费视频一区| 欧美成人免费va影院高清| 中出视频在线观看| 四虎精品在线观看| 欧美日韩亚洲成人| 色呦呦网站入口| 人成在线免费视频| 国产美女精品人人做人人爽| 欧美最猛性xxxx| 久久久久无码国产精品| 欧美日韩高清| 精品亚洲一区二区三区四区五区| 五月婷婷丁香色| 手机在线观看av网站| 亚洲欧美一区二区三区极速播放| 免费观看成人在线| 国产成人精品无码高潮| 日本少妇一区二区| 日本久久久a级免费| 超碰在线国产97| 日韩精品免费| 亚洲美女久久久| 国产二级一片内射视频播放| 国产激情一区| 欧美日韩一区二区在线视频| 夫妻免费无码v看片| 欧洲在线视频| 日韩美女啊v在线免费观看| 日韩精品久久久免费观看| 人妻无码一区二区三区久久99| 精品一区二区三区在线播放视频 | www欧美com| 国产探花一区二区| 国产丝袜一区视频在线观看| 国产51自产区| 精品国产亚洲一区二区在线观看| 欧洲av一区二区嗯嗯嗯啊| 大j8黑人w巨大888a片| 欧美另类tv| 亚洲欧美日韩国产综合| 一区二区三区我不卡| 三区四区电影在线观看| 国产欧美日韩在线看| 免费久久久一本精品久久区| 欧美一区,二区| 成人精品电影在线观看| 91在线看网站| 性一交一乱一透一a级| 狠狠色狠狠色综合系列| 国产日韩精品在线播放| 夜夜躁很很躁日日躁麻豆| 人妖欧美一区二区| 国产欧美日韩专区发布| 一级黄色大片免费| 免费成人在线影院| 国产精品亚洲综合天堂夜夜| 中文字幕免费播放| 国内不卡的二区三区中文字幕| 国产精品视频不卡| 一二三区在线播放| 国产精品一区二区你懂的| 99视频日韩| 隣の若妻さん波多野结衣| 99视频有精品| 免费看国产精品一二区视频| 加勒比一区二区三区在线| 国产日韩欧美在线一区| 一区二区三区久久网| 69xxx在线| 专区另类欧美日韩| 国产精品成人久久电影| 北岛玲heyzo一区二区| 日本高清免费不卡视频| 天堂在线中文在线| 国产日韩三级| 亚洲天堂日韩电影| 三级在线观看免费大全| 亚洲精选91| 国产a∨精品一区二区三区不卡| 自拍偷拍色综合| 国产一区二区三区在线观看免费 | 精品日本12videosex| 久久精品99久久久久久久久| 国产精品16p| 日韩精品免费专区| 91在线看网站| 国产大学生校花援交在线播放| 一区二区中文字幕在线| 国产中文字幕乱人伦在线观看| 成人免费看黄| 欧美一区二区日韩一区二区| 水蜜桃av无码| 婷婷综合视频| 琪琪亚洲精品午夜在线| 国产女人高潮毛片| 国产婷婷色一区二区三区在线| 青青草影院在线观看| 亚洲精品88| 欧美一区二区三区日韩视频| 91网站免费视频| 国产精品豆花视频| 国产精品三级网站| 日本中文字幕一区二区有码在线| 亚洲丝袜制服诱惑| 玩弄japan白嫩少妇hd| 日韩精品一级| 最新69国产成人精品视频免费| 日产电影一区二区三区| 精品一区二区日韩| 日韩电影天堂视频一区二区| 超黄网站在线观看| 欧美一二三区在线| 久久久久亚洲AV成人无在| 伊人影院久久| 亚洲一区二区三区777| 成全电影播放在线观看国语| 精品久久久久久久中文字幕| 久久黄色一级视频| 99久久www免费| 国产精品吊钟奶在线| 人妻91麻豆一区二区三区| 亚洲欧美一区二区三区久本道91| 亚洲成人福利在线观看| 精品一区在线| 午夜剧场成人观在线视频免费观看| 国产喷水吹潮视频www| 国产精品剧情在线亚洲| 欧美日韩在线免费播放| 中文字幕av一区二区三区人| 1769国产精品| 天堂中文在线资源| 午夜精品在线视频一区| 国产精品果冻传媒| 国内精品久久久久久久影视麻豆| 成人在线国产精品| 草莓福利社区在线| 欧美一区二区播放| 亚洲熟女www一区二区三区| 激情久久五月天| 一区一区视频| 91国产精品| 久久久www成人免费精品张筱雨| 国产女主播喷水视频在线观看| 久久久久久久久久久黄色| 日韩免费一级视频| 西野翔中文久久精品字幕| 91av视频在线播放| 嫩草在线播放| 91国产丝袜在线播放| 五月婷婷婷婷婷| 激情综合五月天| 亚洲成人动漫在线| 亚洲高清在线一区| 国内伊人久久久久久网站视频 | 成人精品一区二区三区中文字幕| 欧美视频在线第一页| 精品网站aaa| 日本精品中文字幕| 日韩专区在线| 日韩女优视频免费观看| 日韩精品一区二区av| 久久精品人人做人人综合 | 亚洲av人无码激艳猛片服务器| 欧美极品另类videosde| 亚洲欧美天堂在线| 亚洲性图久久| 免费在线成人av电影| 欧美日韩五区| 九九热精品在线| 丝袜视频国产在线播放| 欧美偷拍一区二区| 欧美人与禽zozzo禽性配| 99精品一区二区三区| 已婚少妇美妙人妻系列| 999久久久国产精品| 99国产高清| 欧美色网在线| 九九久久综合网站| 欧美日韩影视| 日韩一区二区在线看片| 国产一级18片视频| 一区在线播放视频| 亚洲av无码一区二区二三区| 久久精品国内一区二区三区| 欧美精品卡一卡二| 色97色成人| 精品蜜桃一区二区三区| 欧美性aaa| 26uuu日韩精品一区二区| 免费大片在线观看www| 国产视频在线观看一区二区| 国产精品毛片久久久久久久av| 亚洲成人午夜电影| 亚洲女同二女同志奶水| 99精品欧美一区二区三区综合在线| 黄色一级二级三级| 最新亚洲一区| 日本在线视频www色| 怕怕欧美视频免费大全| 国产精品国产精品| 国产精品1区| 国产ts一区二区| 超碰中文在线| 欧美日韩成人在线播放| 日本在线天堂| 一区二区欧美久久| 午夜福利理论片在线观看| 欧美一区二区在线免费播放| 天堂网一区二区| 亚洲成va人在线观看| 懂色av懂色av粉嫩av| 欧美高清在线一区| 成人片黄网站色大片免费毛片| 高清成人在线观看| 亚洲天堂网站在线| 老司机精品视频一区二区三区| 116极品美女午夜一级| 亚洲视频免费| 欧美美女黄色网| 国产精品久久久久久久久妇女| 欧美一区二区高清在线观看| 精品日产乱码久久久久久仙踪林| 91入口在线观看| www.久久久.com| 国产精品人成电影在线观看| 亚洲天堂一区二区| 国产97在线|亚洲| 新版的欧美在线视频| 97超碰色婷婷| 日韩激情电影免费看| 51久久精品夜色国产麻豆| 爱啪啪综合导航| 午夜精品在线视频| 天堂中文在线播放| 欧美一级电影免费在线观看| 日韩欧美一中文字暮专区 | 亚洲成人1区| 国产主播喷水一区二区| 久久免费资源| 成人av电影天堂| 久久九九精品视频| 91aaaa| 日韩免费一级| 国产精品免费视频一区二区| 久久精品福利| 麻豆av一区二区| 欧美精品尤物在线观看| 日韩免费av一区二区三区| 成人在线免费观看网站| 一区二区欧美日韩| 欧美a级片网站| 黄色片免费在线观看视频| 亚洲国产裸拍裸体视频在线观看乱了中文| 成人一级生活片| 国产精品视区| 韩国中文字幕av| 国产在线观看免费一区| 伊人av在线播放| 97久久精品人人做人人爽50路| 国产精品1000部啪视频| 国产清纯美女被跳蛋高潮一区二区久久w | 成人综合视频在线| 蜜臀久久久久久久| 无套内谢丰满少妇中文字幕| 成人一道本在线| 亚洲第一页av| 国产精品久久久久永久免费观看| 国产人妻精品一区二区三区不卡| 一级女性全黄久久生活片免费| 日产精品久久久| 91精品婷婷国产综合久久性色| 亚洲AV无码一区二区三区少妇| 日韩精品视频免费| 日本www在线| 久久久女女女女999久久| 欧美日韩视频网站| 亚洲一区二区三区在线视频| 欧美电影免费网站| 一本久道久久综合| 亚洲国产日本| 一区二区三区 欧美| 丁香婷婷综合色啪| 欧美丰满美乳xxⅹ高潮www| 亚洲精品福利视频网站| 无码人妻丰满熟妇区五十路| 欧美一级日韩一级| 黄色软件在线| 欧美激情国产日韩精品一区18| 校园春色亚洲色图| 国产66精品久久久久999小说| 国产亚洲精品美女久久久久久久久久| 天天干天天操天天干天天操| 亚洲欧美网站| 波多野结衣三级视频| 国产欧美精品一区| 日本系列第一页| 91精品国产91热久久久做人人| 亚洲色图欧美视频| 九九热精品视频在线播放| 精品日本视频| 久久香蕉综合色| 好看不卡的中文字幕| xxww在线观看| 久久精品水蜜桃av综合天堂| 国产乡下妇女做爰| 91精品国产欧美一区二区18 | 久久精品福利视频| 成人线上视频| 国产伦精品一区二区三区免| 国产精品久久久久无码av| 日韩中文字幕免费在线| 99re热这里只有精品免费视频| 欧洲猛交xxxx乱大交3| 欧美日韩午夜影院| 精品美女视频在线观看免费软件| 欧美激情在线一区| 精品麻豆剧传媒av国产九九九| 日韩久久精品一区二区三区| 国产欧美综合一区二区三区| 蜜臀aⅴ国产精品久久久国产老师| 国产精品国产三级国产有无不卡 | 日韩视频永久免费| 午夜视频在线看| 国产精品你懂得| 不卡日本视频| 男人的天堂日韩| 91丨porny丨首页| 日韩激情一区二区三区| 日韩欧美国产一区在线观看| 成人午夜在线影视| 亚洲wwwav| 欧美激情91| 精品国产aⅴ一区二区三区东京热| 亚洲色图一区二区三区| 国产免费叼嘿网站免费| 另类天堂视频在线观看| 国产aa精品| wwwwww欧美| 成人久久18免费网站麻豆| 日韩污视频在线观看| 亚洲а∨天堂久久精品9966 | 激情综合中文娱乐网| 国产成人av免费观看| 亚洲狠狠爱一区二区三区| 天堂在线观看视频| 91高清视频免费| 蜜桃视频欧美| xxxx一级片| 中文字幕在线不卡一区| 国产精品伦理一区| 欧美激情影音先锋| 欧美深夜视频| 美女一区二区三区视频| 日韩一区在线看| 精品女同一区二区三区| 国内外成人免费激情在线视频| 五月国产精品| 少妇网站在线观看| 亚洲激情校园春色| 五月激情婷婷综合| 国产精品久久久久久久9999| 99免费精品| 亚洲一级Av无码毛片久久精品| 欧美日韩国产一区二区| www日韩tube| 99在线观看视频| 久久精品免费| 欧美日韩色视频| 亚洲精品国产福利| 久久天天久久| 日本黄大片在线观看| 久久久天堂av| 国产欧美一区二区三区视频在线观看| 欧美国产极速在线| 欧洲杯足球赛直播| 久久精品aⅴ无码中文字字幕重口| 精品欧美aⅴ在线网站| 一区二区高清不卡| 韩国精品一区二区三区六区色诱| 日本不卡视频在线观看| 免费在线观看一级片| 亚洲精品一区二三区不卡| av在线国产精品| 欧美 激情 在线| 亚洲黄一区二区三区| 黄色片视频在线观看| 91免费观看| 日本vs亚洲vs韩国一区三区二区 | 日韩一区二区免费电影| 成人性教育av免费网址| 国产性生活免费视频| 中文无字幕一区二区三区| 人妻与黑人一区二区三区| 国产专区精品视频|