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

Git歷險記(5):Git里的分支與合并

系統 Linux
本文是《Git歷險記》系列的第五篇,譯者劉輝通過翻譯《Git Community Book》為我們具體講解Git里的分支與合并以及如何處理沖突的方法。如果你對Git還不了解,可以參看《Git歷險記(1):初識版本控制系統Git》。以下是正文。

 51CTO編者按:本文是《Git歷險記》系列的第五篇,譯者劉輝通過翻譯《Git Community Book》為我們具體講解Git里的分支與合并以及如何處理沖突的方法。如果你對Git還不了解,可以參看《Git歷險記(1):初識版本控制系統Git》。以下是正文。

分支與合并

在Git里面我們可以創建不同的分支,來進行調試、發布、維護等不同工作,而互不干擾。下面我們還是來創建一個試驗倉庫,看一下Git分支運作的臺前幕后:

$rm -rf test_branch_proj
$mkdir test_branch_proj
$cd test_branch_proj
$git init
Initialized empty Git repository in /home/test/test_branch_proj/.git/

我們如以往一樣,創建一個“readme.txt”文件并把它提交到倉庫中:

$echo "hello, world" > readme.txt
$git add readme.txt
$git commit -m "project init"
[master (root-commit) 0797f4f] project init 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 readme.txt

我們來看一下工作目錄(working tree)的當前狀態:

$git status
# On branch master
nothing to commit (working directory clean)

大家如果注意的話,可以看到“# On branch master”這么一行,這表示我們現在正在主分支(master)上工作。當我們新建了一個本地倉庫,一般就是默認處在主分支(master)上。下面我們一起看一下Git是如何存儲一個分支的:

$cd .git
$cat HEAD
ref: refs/heads/master

“.git/HEAD”這個文件里保存的是我們當前在哪個分支上工作的信息。

在Git中,分支的命名信息保存在“.git/refs/heads”目錄下:

$ls refs/heads
master

我們可以看到目錄里面有一個名叫“master”文件,我們來看一下里面的內容:

$cat refs/heads/master
12c875f17c2ed8c37d31b40fb328138a9027f337

大家可以看到這是一個“SHA1哈希串值”,也就是一個對象名,我們再看看這是一個什么類型的對象:

$cat refs/heads/master | xargs git cat-file -t
commit

是的,這是一個提交(commit),“master”文件里面存有主分支(master)最新提交的“對象名”;我們根據這個“對象名”就可以可找到對應的樹對象(tree)和二進制對象(blob),簡而言之就是我能夠按“名”索引找到這個分支里所有的對象。

讀者朋友把我們文章里的示例在自己的機器上執行時會發現,“cat refs/heads/master”命令的執行結果和和文章中的不同。在本文里這個提交(commit)的名字是: “12c875f17c2ed8c37d31b40fb328138a9027f337”,前面我講Git是根據對象的內容生成“SHA1哈希串值”作為 名字,只要內容一樣,那么的對應的名字肯定是一樣的,為什么這里面會不一樣呢? Git確實根據內容來生成名字的,而且同名(SHA1哈希串值)肯定會有 相同內容,但是提交對象(commit)和其它對象有點不一樣,它里面會多一個時間戳(timestamp),所以在不同的時間生成的提交對象,即使內容 完全一樣其名字也不會相同。

下面命令主是查看主分支最新提交的內容:

$cat refs/heads/master | xargs git cat-file -p
tree 0bd1dc15d804534cf25c5cb53260fd03c84fd4b9
author liuhui998 1300697913 +0800
committer liuhui998 1300697913 +0800 project init

“1300697913 +0800”這就是時間戳(timestamp)。

現在查看此分支里面所包含的數據(blob)

$cat refs/heads/master | xargs git cat-file -p | head -n 1 | cut -b6-15 | xargs git cat-file -p
100644 blob 4b5fa63702dd96796042e92787f464e28f09f17d readme.txt

查看當前的readme.txt

$git cat-file -p 4b5fa63
hello, world
$cd ..

好的,前面是在主分支(master)里面玩,下面我們想要創建一個自己的測試分支來玩一下。git branch命令可以創建一個新的分支,也可以查看當前倉庫里有的分支。下面先創建一個叫“test”的分支: $git branch test

再來看一下當前項目倉庫中有幾個分支:

$git branch
* master test

我們現在簽出“test”分支到工作目錄里:

$git checkout test

現在再來看一下我們處在哪個分支上:

$git branch master
* test

好的,我們現在在“test”分支里面了,那么我們就修改一下“readme.txt”這個文件,再把它提交到本地的倉庫里面支:

$echo "In test branch" >> readme.txt
$git add readme.txt
$git commit -m "test branch modified"
[test 7f3c997] test branch modified 1 files changed, 1 insertions(+), 0 deletions(-)

當看當前版本所包含的blob:

$git cat-file -p HEAD | head -n 1 | cut -b6-15 | xargs git cat-file -p

我們現在再像前面一樣的看看Git如何存儲“test”這個分支的,先來看看“.git/HEAD”這個文件是否指向了新的分支:

$cd .git
$cat HEAD
ref: refs/heads/test

沒錯,“.git/HEAD”確實指向的“test”分支。再來看看“.git/refs/heads”目錄里的內容:

$ls refs/heads
master
test

我們可以看到目錄里面多了一個名叫“test”文件,我們來看一下里面的內容:

$cat refs/heads/test
7f3c9972577a221b0a30b58981a554aafe10a104

查看測試分支(test)最新提交的內容:

$cat refs/heads/test | xargs git cat-file -p
tree 7fa3bfbeae072063c32621ff08d51f512a3bac53
parent b765df9edd4db791530f14c2e107aa40907fed1b
author liuhui998 1300698655 +0800
committer liuhui998 1300698655 +0800 test branch modified

再來查看此分支里面所包含的數據(blob):

$cat refs/heads/test | xargs git cat-file -p | head -n 1 | cut -b6-15 | xargs git cat-file -p
100644 blob ebe01d6c3c2bbb74e043715310098d8da2baa4bf readme.txt

查看當前”readme.txt”文件里的內容:

$git cat-file -p ebe01d6
hello, world
In test branch
cd ..

我們再回到主分支里面:

$git checkout master
Switched to branch 'master'
$git checkout master
$cat readme.txt
hello, world

如我們想看看主分支(master)和測試分支(test)之間的差異,可以使用git diff命令來查看它們之間的diff:

$git diff test
diff --git a/readme.txt b/readme.txt
index ebe01d6..4b5fa63 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1 @@ hello, world
-In test branch

大家可以以到當前分支與測試分支(test)相比,少了一行內容:“-In test branch”。

如果執行完git diff命令后認為測試分支(test)的修改無誤,能合并時,可以用git merge命令把它合并到主分支(master)中:

$git merge test
Updating b765df9..7f3c997
Fast-forward readme.txt | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

“Updating b765df9..7f3c997”表示現在正在更新合并“b765df9”和“7f3c997”兩個提交(commit)之間的內容;“b765df9”代表著主分支(master),“7f3c997”代表測試分支(test)。

“Fast-forward”在這里可以理解為順利合并,沒有沖突。“readme.txt | 1 +”表示這個文件有一行被修改,“1 files changed, 1 insertions(+), 0 deletions(-)”,表示這一次合并只有一個文件被修改,一行新數據插入,0 行被刪除。

我們現在看一下合并后的“readme.txt”的內容:

$cat readme.txt
hello, world
In test branch

內容沒有錯,是“master”分支和“test”分支合并后的結果,再用“git status”看一下,當前工作目錄的狀態也是干凈的(clean)。

$git status
# On branch master
nothing to commit (working directory clean)

好的,現在測試分支(test)結束了它的使命,沒有存在的價值的,可以用“git branch -d”命令把這個分支刪掉:

$git branch -d test
Deleted branch test (was 61ce004).

如果你想要刪除的分支還沒有被合并到其它分支中去,那么就不能用“git branch -d”來刪除它,需要改用“git branch -D”來強制刪除。

#p#

如何處理沖突(conflict)

前面說了分支的一些事情,還簡單地合并了一個分支。但是平時多人協作的工作過程中,幾乎沒有不碰到沖突(conflict)的情況,下面的示例就是剖析一下沖突成因及背后的故事:

還是老規矩,新建一個空的Git倉庫作試驗:

$rm -rf test_merge_proj
$mkdir test_merge_proj
$cd test_merge_proj
$git init
Initialized empty Git repository in /home/test/test_merge_proj/.git/

在主分支里建一個“readme.txt”的文件,并且提交本地倉庫的主分支里(master):

$echo "hello, world" > readme.txt
$git add readme.txt
$git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: readme.txt
#
git commit -m "project init"
[master (root-commit) d58353e] project init 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 readme.txt

當看當前版本所包含的blob:

$git cat-file -p HEAD | head -n 1 | cut -b6-15 | xargs git cat-file -p
100644 blob 4b5fa63702dd96796042e92787f464e28f09f17d readme.txt

雖然前面把“readme.txt”這個文件提交了,但是暫存區里還是會暫存一下,直到下次“git add”時把它沖掉:

$git ls-files --stage
100644 4b5fa63702dd96796042e92787f464e28f09f17d 0 readme.txt

然后再創建測試分支(test branch),并且切換到測試分支下工作:

$git branch test
$git checkout test
Switched to branch 'test'

再在測試分支里改寫“readme.txt”的內容,并且提交到本地倉庫中:

$echo "hello, mundo" > readme.txt
$git add readme.txt
$git commit -m "test branch modified"
[test 7459649] test branch modified 1 files changed, 1 insertions(+), 1 deletions(-)

現在看一下當前分支里的“readme.txt”的“SHA1哈希串值”確實不同了:

$git cat-file -p HEAD | head -n 1 | cut -b6-15 | xargs git cat-file -p
100644 blob 034a81de5dfb592a22039db1a9f3f50f66f474dd readme.txt

暫存區里的東東也不一樣了:

$git ls-files --stage
100644 034a81de5dfb592a22039db1a9f3f50f66f474dd 0 readme.txt

現在我們切換到主分支(master)下工作,再在“readme.txt”上作一些修改,并把它提交到本地的倉庫里面:

$git checkout master
Switched to branch 'master'
$git add readme.txt
echo "hola,world" > readme.txt
$git add readme.txt
$git commit -m "master branch modified"
[master 269ef45] master branch modified 1 files changed, 1 insertions(+), 1 deletions(-)

現在再來看一下當前分支里的“readme.txt”的“SHA1哈希串值”:

$git cat-file -p HEAD | head -n 1 | cut -b6-15 | xargs git cat-file -p
100644 blob aac629fb789684a5d9c662e6548fdc595608c002 readme.txt

暫存區里的內容也改變了:

$git ls-files --stage
100644 aac629fb789684a5d9c662e6548fdc595608c002 0 readme.txt

主分支(master) 和測試分支(test)里的內容已經各自改變了(diverged),我們現在用“git merge”命令來把兩個分支合一下看看:

$git merge test
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

合并命令的執行結果不是“Fast-foward”,而是“CONFLICT”。是的,兩個分支的內容有差異,致使它們不能自動合并(Auto-merging)。

還是先看一下工作目錄的狀態:

$git status
# On branch master
# Unmerged paths:
# (use "git add/rm ..." as appropriate to mark resolution)
#
# both modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

現在Git提示當前有一個文件“readme.txt”沒有被合并,原因是“both modified”。

再看一下暫存區里的內容:

$git ls-files --stage
100644 4b5fa63702dd96796042e92787f464e28f09f17d 1 readme.txt
100644 aac629fb789684a5d9c662e6548fdc595608c002 2 readme.txt
100644 034a81de5dfb592a22039db1a9f3f50f66f474dd 3 readme.txt

看一下里面的每個blob對象的內容:

$git cat-file -p 4b5fa6
hello, world
$git cat-file -p aac629
hola,world
$git cat-file -p 034a81
hello, mundo

我們不難發現,“aac629”是當前主分支的內容,“034a81”是測試分支里的內容,而“4b5fa6”是它們共同父對象(Parent)里的內容。因為在合并過程中出現了錯誤,所以Git把它們三個放到了暫存區了。

現在我們再來看一下工作目錄里的“readme.txt”文件的內容:

$cat readme.txt
<<<<<<< HEAD
hola,world
=======
hello, mundo
>>>>>>> test

“<<<<<<< HEAD“下面就是當前版本里的內容;而“=======”之下,“>>>>>>> test”之上則表示測試分支里與之對應的有沖突的容。修復沖突時我們要做的,一般就是把“ <<<<<<< HEAD”,“=======”和“ >>>>>>> test”這些東東先去掉,然后把代碼改成我們想要的內容。

假設我們用編輯器把“readme.txt“改成了下面的內容:

$cat readme.txt
hola, mundo

然再把改好的“readme.txt”用“git add”添加到暫存區中,最后再用“git commit”提交到本地倉庫中,這個沖突(conflict)就算解決了:

$git add readme.txt
$git commit -m "fix conflict"
[master ebe2f18] fix conflict

這里看起來比較怪異的地方是Git解決了沖突的辦法:怎么用“git add”添加到暫存區去,“git add”不是用來未暫存文件的吧,怎么又來解決沖突了。不過我想如果你仔細讀過上一篇文章的話就不難理解,因為Git是一個“snapshot”存儲系統,所有新增加的內容都是直接存儲的,而不是和老版本作一個比較后存儲新舊版本間的差異。

Git里面合并兩個版本之間的同一文件,如果兩者間內容相同則不作處理,兩者間內容不同但是可以合并則產生一個新的blob對象,兩者間內容不同但是合并時產生了沖突,那么我們解決了沖突后要把文件“git add”到暫存區中再“git commit”提交到本地倉庫即可,這就和前面一樣產生一個新的blob對象。

假設我們對合并的結果不滿意,可以用下面的命令來撤消前面的合并:

$git reset --hard HEAD^
HEAD is now at 050d890 master branch modified

從git reset(2)命令的輸出結果可以看到,主分支已經回到了合并前的狀態了。

我們再用下面的命令看一下“readme.txt”文件,確認一下文件改回來沒有:

$cat readme.txt
hola,world

小結

由于Git采用了“SHA1哈希串值內容尋值”、“快照存儲(snapshot)”等方法, Git中創建分支代價是很小的速度很快;也這是因為如此,它處理合并沖突的方法與眾不同。

在這里我想起了“C語言就是匯編(計算機硬件)的一個馬甲”這句話,其實Git也就是底層文件系統的一個馬甲,只不過它帶了版本控制功能,而且更加高效。Git里有些命令可能不是很好理解(如解決合并沖突用git add),但是對于系統層而言,它是最高效的,就像是C語言的數組下標從0開始一樣。

原文連接:http://www.infoq.com/cn/news/2011/03/git-adventures-branch-merge

【編輯推薦】

  1. Git歷險記(4):索引與提交的那些事
  2. Git歷險記(3):創建一個自己的本地倉庫
  3. Git歷險記(2):Git的安裝和配置


 

責任編輯:黃丹 來源: InfoQ
相關推薦

2011-01-26 10:05:36

Git安裝配置

2011-03-18 09:35:39

GitLinux版本控制

2011-01-26 09:09:06

版本控制系統GitLinux

2009-10-15 09:21:00

CCNA考試歷險記CCNA

2022-05-26 21:38:02

開源分布式Hadoop

2022-05-05 19:26:17

Druid分布式存儲

2011-02-28 14:37:43

GitLinux版本控制

2021-02-22 08:20:32

Activity動畫界面

2020-05-28 10:45:31

Git分支合并

2011-09-16 16:05:10

MySQL

2023-12-01 11:05:29

Git 分支

2024-10-14 08:35:29

2014-04-01 09:13:23

程序員招聘

2014-08-08 10:20:23

Git版本管理系統

2017-06-30 17:54:04

2023-10-09 08:39:33

Git Flow分支管理模型

2025-07-31 00:00:15

2022-10-26 09:22:19

git命令Linux

2022-11-07 08:01:18

Git分支管理

2020-07-09 08:00:25

Git分支模式
點贊
收藏

51CTO技術棧公眾號

亚洲精品精品亚洲| 日韩激情av在线| 精品国精品国产尤物美女| 九九爱精品视频| 欧美日韩在线精品一区二区三区激情综| 一本久道久久综合狠狠爱| 中文字幕欧美国内| 亚洲图片欧美另类| xxxxx.日韩| 亚洲大片一区二区三区| 日韩国产欧美一区| 中文字幕在线观看91| 麻豆国产在线| 亚洲婷婷综合色高清在线| 精品卡一卡二| 国产av无码专区亚洲av| 欧美亚洲三级| 久久久久久久久久国产| 美女100%露胸无遮挡| 爱爱精品视频| 欧美群妇大交群中文字幕| 韩国无码av片在线观看网站| 成人18在线| 成人黄色av电影| 国产综合久久久久久| 精品欧美一区二区三区免费观看| 三级电影一区| 日韩精品中文字幕久久臀| 日韩欧美中文在线视频| 国产69精品久久久久9999人| 香蕉乱码成人久久天堂爱免费| 永久域名在线精品| 国产在线观看黄| 成人综合激情网| 91在线视频成人| 中文字幕有码无码人妻av蜜桃| 亚洲国产清纯| 精品日韩欧美在线| 国产精品嫩草影院8vv8| 日韩精选视频| 欧美视频专区一二在线观看| 欧美中日韩在线| 亚洲第一图区| 亚洲欧美另类图片小说| 亚洲欧洲精品一区二区| 国产1区2区3区在线| 91色|porny| 久久99九九| 日韩黄色影片| 91视频一区二区三区| 久久久av水蜜桃| 四虎影视精品成人| 久久伊人中文字幕| 欧美日韩喷水| 免费a在线观看| 国产午夜精品福利| 日韩免费av电影| 成人免费在线观看| 国产精品另类一区| 亚洲在线观看一区| 91香蕉在线观看| 一区二区三区四区激情| 国产精品一色哟哟| 欧美aa在线| 日韩欧美在线中文字幕| 亚洲精品高清无码视频| 懂色aⅴ精品一区二区三区| 欧美无砖砖区免费| 日韩av一卡二卡三卡| 国产一区二区三区| 欧美不卡一区二区三区四区| www国产视频| 欧美美女在线| 色一区av在线| 全程偷拍露脸中年夫妇| 亚洲午夜精品久久久久久app| 久久久久久久久电影| 日本少妇吞精囗交| 日韩精品一级中文字幕精品视频免费观看| 国产精品第七十二页| 97精品久久人人爽人人爽| 国产一区二区三区观看| 粉嫩av免费一区二区三区| 污污视频在线免费看| 欧美国产精品劲爆| 成年人视频大全| 日本免费一区二区三区四区| 欧美日韩国产乱码电影| 亚洲成av人片在线观看无| 国产剧情在线观看一区| 色综合91久久精品中文字幕| 可以免费在线观看的av| 麻豆久久久久久久| 国产欧美日韩一区| 午夜在线观看视频| 午夜欧美大尺度福利影院在线看 | 欧美激情综合| 欧美一级在线亚洲天堂| 在线观看免费视频a| 国产91精品免费| 日韩精品久久久免费观看| 污网站在线免费看| 在线视频亚洲一区| 国产在线观看免费播放| 不卡中文字幕| 91干在线观看| www夜片内射视频日韩精品成人| 日韩中文字幕区一区有砖一区| 91视频国产一区| 男女视频在线观看| 亚洲黄色录像片| 污污视频网站免费观看| 99香蕉久久| 久久精品视频导航| 亚洲欧美另类在线视频| 国产成人免费xxxxxxxx| 天天综合色天天综合色hd| 俺来俺也去www色在线观看| 69av一区二区三区| 日本一道本视频| 在线亚洲激情| 国产富婆一区二区三区| 国产激情在线视频| 欧美色视频一区| 中文字幕一二三四区| 精品91在线| 2014亚洲精品| 欧美猛烈性xbxbxbxb| 在线精品视频一区二区| 午夜久久久久久久| 精品动漫3d一区二区三区免费版| 成人伊人精品色xxxx视频| av资源在线观看免费高清| 色婷婷精品大在线视频| 亚洲久久久久久| 99热这里只有精品8| 高清免费日韩| 欧洲性视频在线播放| 91精品国产91热久久久做人人| 五月激情四射婷婷| 日本v片在线高清不卡在线观看| 免费成人av网站| 91精品产国品一二三产区| 日韩av在线一区二区| 精品在线播放视频| 99久久精品国产精品久久| 日韩 欧美 视频| 好吊妞视频这里有精品| 久久久久久久久久久久av| 亚洲成人中文字幕在线| 亚洲国产欧美在线| 中文字幕99页| 999在线观看精品免费不卡网站| 成人自拍爱视频| 97久久人人超碰caoprom| 欧美精品一区二区在线观看| 日本三级欧美三级| 久久亚洲欧美国产精品乐播| 欧美成人黑人猛交| 亚洲女娇小黑人粗硬| 国产激情视频一区| chinese偷拍一区二区三区| 欧美美女网站色| 国产黄色的视频| 国产91富婆露脸刺激对白| 97超碰在线人人| 动漫3d精品一区二区三区乱码| 午夜剧场成人观在线视频免费观看| 成人免费一级视频| 欧美日韩国产在线看| 午夜理伦三级做爰电影| 免费一级欧美片在线观看| 最新av在线免费观看| 日本一区二区乱| 亚州欧美日韩中文视频| 狠狠狠综合7777久夜色撩人 | www.97av.com| 欧美日韩国产限制| 三级黄色免费观看| 东方欧美亚洲色图在线| 国产精品igao| 亚洲欧美综合国产精品一区| 国产在线精品一区二区中文| 无人区在线高清完整免费版 一区二 | 欧美在线视频一二三| yw193.com尤物在线| 欧美一区二区三区在线| 日韩精品一区二区av| 国产丝袜欧美中文另类| 中国男女全黄大片| 三级欧美在线一区| 超碰97网站| 欧美xx视频| 久久国产精品影视| 欧美一区二区少妇| 日韩一级成人av| 欧美成人一区二区三区四区| 亚洲激情网站免费观看| 女人又爽又黄免费女仆| 国产成人精品一区二区三区四区 | 精品中文字幕久久久久久| 国产精品视频久久久久久| 精品欧美国产一区二区三区| 熟女少妇a性色生活片毛片| 91麻豆福利精品推荐| 色噜噜狠狠一区二区三区狼国成人| 99pao成人国产永久免费视频| 亚洲黄色一区二区三区| 牛牛视频精品一区二区不卡| 成人在线中文字幕| 国产亚洲一区二区手机在线观看 | 免费成人高清在线视频| 亚洲18私人小影院| 中文在线免费| 久久精品99久久久香蕉| 国产在线视频网站| 日韩成人激情视频| 日本精品一区二区在线观看| 欧美精品日日鲁夜夜添| 久久久久久久久久影院| 亚洲一级二级三级| 神马午夜精品91| 国产精品久久久久久久久图文区| 日韩精品卡通动漫网站| 成人污污视频在线观看| 91精品国产三级| 精品一区二区免费| 欧美精品性生活| 久久午夜电影| 99精品视频在线看| 亚洲毛片视频| 激情伊人五月天| 在线播放精品| 亚洲熟妇无码一区二区三区导航| 欧美激情自拍| 妺妺窝人体色www看人体| 伊人青青综合网| 四虎永久免费网站| 婷婷综合亚洲| 久久久久久久久影视| 久久久久久久久丰满| 欧美 日韩 国产 在线观看| 91亚洲成人| 手机在线视频你懂的| 亚洲成人一区| 久久久久久久久影视| 欧美区日韩区| 欧日韩免费视频| 一区二区动漫| 日本不卡在线观看视频| 亚洲一区一卡| 国产一级特黄a大片免费| 欧美a一区二区| 午夜宅男在线视频| 精品一区二区影视| 欧美日韩久久婷婷| 国产成人av一区二区三区在线| 男人的天堂免费| 丁香网亚洲国际| asian性开放少妇pics| 国产校园另类小说区| 久久久久麻豆v国产| 亚洲欧美视频一区| 国产无套粉嫩白浆内谢| 精品高清美女精品国产区| 亚洲 日本 欧美 中文幕| 欧美午夜免费电影| av男人天堂网| 亚洲国产精品系列| 爱久久·www| 九九精品在线播放| 免费毛片b在线观看| 国产精品国产三级国产aⅴ9色| 美女视频一区| 国产美女99p| sdde在线播放一区二区| 穿情趣内衣被c到高潮视频| 亚洲精品男同| 亚洲欧美在线精品| 成人av午夜电影| www.黄色在线| 亚洲一区二区视频在线| 国产天堂第一区| 欧美大片日本大片免费观看| 久久久久久青草| 欧美成人小视频| 成人免费网站视频| 亚洲影院高清在线| 四虎影视精品| 一道本在线观看视频| 男女av一区三区二区色多| 在线观看av免费观看| 99精品国产99久久久久久白柏| 四虎国产成人精品免费一女五男| 亚洲影视在线观看| 羞羞色院91蜜桃| 亚洲黄色在线看| 国产精品一区二区三区视频网站| 777精品视频| 国产精品一区二区三区www| 精品欧美国产一区二区三区不卡| 99久久99热这里只有精品| 国产精品动漫网站| 国产成人av福利| 自拍偷拍第9页| 欧美性猛交xxxxx免费看| 国产成人a人亚洲精品无码| 亚洲香蕉av在线一区二区三区| 欧美aaa免费| 91久久久久久久久久| 要久久爱电视剧全集完整观看| 日韩极品视频在线观看 | 岛国av免费观看| 中文字幕日韩一区| 日本a级c片免费看三区| 亚洲成人中文字幕| 中文字幕在线播放网址| 成人激情视频小说免费下载| 九九综合在线| 欧美深夜福利视频| 国产成人亚洲综合色影视| 国精品人伦一区二区三区蜜桃| 色综合久久综合| 香蕉视频网站在线| 欧美精品第一页在线播放| 粉嫩av国产一区二区三区| 亚洲欧美综合一区| 日韩电影在线观看网站| 亚洲激情视频小说| 欧美午夜宅男影院在线观看| 囯产精品久久久久久| 欧美精品午夜视频| 视频欧美一区| 黄色影视在线观看| 国产一区 二区 三区一级| 亚洲色图100p| 欧美日韩精品一区二区天天拍小说 | 精品久久一二三| 99免费精品视频| 久草国产精品视频| 亚洲国内精品视频| 蜜桃av.网站在线观看| 国产综合 伊人色| 在线一区免费观看| 黄色在线观看av| 91久久久免费一区二区| 国产午夜在线观看| 国产精品久久久久久久久免费 | 无码av天堂一区二区三区| 成人晚上爱看视频| 九九热在线视频播放| 亚洲精品日韩丝袜精品| 东京一区二区| 亚洲精品一品区二品区三品区 | 色吊一区二区三区| fc2在线中文字幕| 成人国产精品免费视频| 欧美淫片网站| 亚洲一区二区在线免费| 日韩欧美精品网站| 国产免费av高清在线| 国产日韩欧美日韩大片| 亚洲精品午夜av福利久久蜜桃| 亚洲天堂小视频| 精品日韩中文字幕| www黄在线观看| 成人综合国产精品| 99伊人成综合| 中国女人特级毛片| 欧美挠脚心视频网站| 91九色在线播放| 日韩精品国内| 国产麻豆午夜三级精品| 日韩毛片在线视频| 最近的2019中文字幕免费一页| 成人短视频软件网站大全app| 97视频在线免费| 国产欧美精品一区二区色综合朱莉| 一级特黄色大片| 欧美精品xxx| 精品国产91| 国产a√精品区二区三区四区| 色综合久久88色综合天天| 九色porny在线| 久久精品五月婷婷| 毛片不卡一区二区| 日韩手机在线观看| 日韩在线视频免费观看| 成人av激情人伦小说| 亚洲第一狼人区| 亚洲电影一级黄| 免费人成在线观看播放视频 | 在线中文字日产幕| 欧美综合一区二区三区| 久久不射影院| 亚洲免费精品视频| 2017欧美狠狠色| 国产高清在线免费| 国产精品入口免费视频一| 在线看片一区|