欧美激情aaaa_伊人久久久大香线蕉综合直播_日韩在线卡一卡二_亚洲成人人体

git

是目前世界上最先進的分布式版本控制系統

補充說明

git命令 很多人都知道,Linus在1991年創建了開源的Linux,從此,Linux系統不斷發展,已經成為最大的服務器系統軟件了。

Linus雖然創建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?

事實是,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發給Linus,然后由Linus本人通過手工方式合并代碼!

你也許會想,為什么Linus不把Linux代碼放到版本控制系統里呢?不是有CVS、SVN這些免費的版本控制系統嗎?因為Linus堅定地反對CVS和SVN,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。有一些商用的版本控制系統,雖然比CVS、SVN好用,但那是付費的,和Linux的開源精神不符。

不過,到了2002年,Linux系統已經發展了十年了,代碼庫之大讓Linus很難繼續通過手工方式管理了,社區的弟兄們也對這種方式表達了強烈不滿,于是Linus選擇了一個商業的版本控制系統BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權Linux社區免費使用這個版本控制系統。

安定團結的大好局面在2005年就被打破了,原因是Linux社區牛人聚集,不免沾染了一些梁山好漢的江湖習氣。開發Samba的Andrew試圖破解BitKeeper的協議(這么干的其實也不只他一個),被BitMover公司發現了(監控工作做得不錯!),于是BitMover公司怒了,要收回Linux社區的免費使用權。

Linus可以向BitMover公司道個歉,保證以后嚴格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:

Linus花了兩周時間自己用C寫了一個分布式版本控制系統,這就是Git!一個月之內,Linux系統的源碼已經由Git管理了!牛是怎么定義的呢?大家可以體會一下。

Git迅速成為最流行的分布式版本控制系統,尤其是2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。

歷史就是這么偶然,如果不是當年BitMover公司威脅Linux社區,可能現在我們就沒有免費而超級好用的Git了。

Git常用命令清單

語法

git [--version] [--help] [-C <path>] [-c name=value]
   [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
   [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
   [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
   <command> [<args>]

選項

add              將文件內容添加到索引
bisect           通過二進制查找引入錯誤的更改
branch           列出,創建或刪除分支
checkout         檢查分支或路徑到工作樹
clone            將存儲庫克隆到新目錄中
commit           將更改記錄到存儲庫
diff             顯示提交,提交和工作樹等之間的更改
fetch            從另一個存儲庫下載對象和引用
grep             打印匹配圖案的行
init             創建一個空的Git倉庫或重新初始化一個現有的
log              顯示提交日志
merge            加入兩個或更多的開發歷史
mv               移動或重命名文件,目錄或符號鏈接
pull             從另一個存儲庫或本地分支獲取并合并
push             更新遠程引用以及相關對象
rebase           轉發端口本地提交到更新的上游頭
reset            將當前HEAD復位到指定狀態
rm               從工作樹和索引中刪除文件
show             顯示各種類型的對象
status           顯示工作樹狀態
tag              創建,列出,刪除或驗證使用GPG簽名的標簽對象

例子

init

git init #初始化

status

git status #獲取狀態

add

git add file # .或*代表全部添加
git rm --cached <added_file_to_undo> # 在commit之前撤銷git add操作
git reset head # 好像比上面git rm --cached更方便

commit

git commit -m "message" #此處注意亂碼

remote

git remote add origin git@github.com:JSLite/test.git #添加源

push

git push -u origin master # push同事設置默認跟蹤分支  
git push origin master  
git push -f origin master # 強制推送文件,縮寫 -f(全寫--force)

clone

git clone git://github.com/JSLite/JSLite.js.git
git clone git://github.com/JSLite/JSLite.js.git mypro #克隆到自定義文件夾
git clone [user@]example.com:path/to/repo.git/ #SSH協議還有另一種寫法。

git clone支持多種協議,除了HTTP(s)以外,還支持SSH、Git、本地文件協議等,下面是一些例子。git clone <版本庫的網址> <本地目錄名>

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

配置

首先是配置帳號信息 ssh -T git@github.com 測試。

修改項目中的個人信息

git help config # 獲取幫助信息,查看修改個人信息的參數  
git config --global user.name "小弟調調"           # 修改全局名字
git config --global user.email "wowohoo@qq.com"  # 修改全局郵箱
git config --list         # 查看配置的信息  

配置自動換行

自動轉換坑太大,提交到git是自動將換行符轉換為lf

git config --global core.autocrlf input

常見使用場景

創建SSH密鑰

這個密鑰用來跟 github 通信,在本地終端里生成然后上傳到 github

ssh-keygen -t rsa -C 'wowohoo@qq.com' # 生成密鑰  
ssh-keygen -t rsa -C "wowohoo@qq.com" -f ~/.ssh/ww_rsa # 指定生成目錄文件名字
ssh -T git@github.com # 測試是否成功  

多賬號ssh配置

1.生成指定名字的密鑰

ssh-keygen -t rsa -C "郵箱地址" -f ~/.ssh/jslite_rsa
會生成 jslite_rsajslite_rsa.pub 這兩個文件

2.密鑰復制到托管平臺上

vim ~/.ssh/jslite_rsa.pub
打開公鑰文件 jslite_rsa.pub ,并把內容復制至代碼托管平臺上

3.修改config文件

vim ~/.ssh/config #修改config文件,如果沒有創建 config

Host jslite.github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/jslite_rsa

Host work.github.com
  HostName github.com
  # Port 服務器open-ssh端口(默認:22,默認時一般不寫此行)
  # PreferredAuthentications 配置登錄時用什么權限認證 
  #                          publickey|password publickey|keyboard-interactive等
  User git
  IdentityFile ~/.ssh/work_rsa

4.測試

ssh -T git@jslite.github.com  # `@`后面跟上定義的Host  
ssh -T work.github.com        # 通過別名測試
ssh -i ~/公鑰文件地址 Host別名  # 如 ssh -i ~/.ssh/work_rsa work.github.com

5.使用

# 原來的寫法
git clone git@github.com:<jslite的用戶名>/learngit.git
# 現在的寫法
git clone git@jslite.github.com:<jslite的用戶名>/learngit.git
git clone git@work.github.com:<work的用戶名>/learngit.git

5.注意

如果你修改了id_rsa的名字,你需要將ssh key添加到SSH agent中,如:

ssh-add ~/.ssh/jslite_rsa
ssh-add -l  # 查看所有的key
ssh-add -D  # 刪除所有的key
ssh-add -d  ~/.ssh/jslite_rsa # 刪除指定的key

免密碼登錄遠程服務器

$ ssh-keygen -t rsa -P '' -f ~/.ssh/aliyunserver.key
$ ssh-copy-id -i ~/.ssh/aliyunserver.key.pub root@192.168.182.112 # 這里需要輸入密碼一次

編輯 ~/.ssh/config

Host aliyun1
  HostName 192.168.182.112
  User root
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/aliyunserver.key

上面配置完了,可以通過命令登錄,不需要輸入IP地址和密碼 ssh aliyun1

https協議下提交代碼免密碼

git clone https://github.com/username/rep.git

通過上面方式克隆可能需要密碼,解決辦法:進入當前克隆的項目 vi rep/.git/config 編輯 config, 按照下面方式修改,你就可以提交代碼不用輸入密碼了。

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
[remote "origin"]
-	url = https://github.com/username/rep.git
+	url = https://用戶名:密碼@github.com/username/rep.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

文件推向3個git庫

1. 增加3個遠程庫地址

git remote add origin https://github.com/JSLite/JSLite.git  
git remote set-url --add origin https://gitlab.com/wang/JSLite.js.git  
git remote set-url --add origin https://oschina.net/wang/JSLite.js.git  

2. 刪除其中一個 set-url 地址

usage: git remote set-url [--push] <name> <newurl> [<oldurl>]
   or: git remote set-url --add <name> <newurl>
   or: git remote set-url --delete <name> <url>

git remote set-url --delete origin https://oschina.net/wang/JSLite.js.git

3.推送代碼

git push origin master
git push -f origin master  # 強制推送  

4.拉代碼

只能拉取 origin 里的一個url地址,這個fetch-url
默認為你添加的到 origin的第一個地址

git pull origin master   
git pull --all # 獲取遠程所有內容包括tag  
git pull origin next:master # 取回origin主機的next分支,與本地的master分支合并  
git pull origin next # 遠程分支是與當前分支合并  

# 上面一條命令等同于下面兩條命令   
git fetch origin  
git merge origin/next  

如果遠程主機刪除了某個分支,默認情況下,git pull 不會在拉取遠程分支的時候,刪除對應的本地分支。這是為了防止,由于其他人操作了遠程主機,導致git pull不知不覺刪除了本地分支。
但是,你可以改變這個行為,加上參數 -p 就會在本地刪除遠程已經刪除的分支。

$ git pull -p
# 等同于下面的命令
$ git fetch --prune origin 
$ git fetch -p

5.更改pull

只需要更改config文件里,那三個url的順序即可,fetch-url會直接對應排行第一的那個utl連接。

修改遠程倉庫地址

git remote remove origin  # 刪除該遠程路徑  
git remote add origin git@jslite.github.com:JSLite/JSLite.git  # 添加遠程路徑 

撤銷遠程記錄

git reset --hard HEAD~1 # 撤銷一條記錄   
git push -f origin HEAD:master # 同步到遠程倉庫  

放棄本地的文件修改

git reset --hard FETCH_HEAD # FETCH_HEAD表示上一次成功git pull之后形成的commit點。然后git pull

git reset --hard FETCH_HEAD 出現錯誤

git pull
You are not currently on a branch, so I cannot use any
'branch.<branchname>.merge' in your configuration file.
Please specify which remote branch you want to use on the command
line and try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) FOR details.

解決方法:

git checkout -b temp # 新建+切換到temp分支 
git checkout master

最簡單放棄本地修改內容

# 如果有的修改以及加入暫存區的話
git reset --hard 
# 還原所有修改,不會刪除新增的文件
git checkout . 
# 下面命令會刪除新增的文件
git clean -xdf

通過存儲暫存區stash,在刪除暫存區的方法放棄本地修改。

git stash && git stash drop 

回滾到某個commit提交

git revert HEAD~1 # 撤銷一條記錄 會彈出 commit 編輯
git push # 提交回滾

回退到某一個版本

git reset --hard <hash>
# 例如 git reset --hard a3hd73r
# --hard代表丟棄工作區的修改,讓工作區與版本代碼一模一樣,與之對應,
# --soft參數代表保留工作區的修改。

去掉某個commit

# 實質是新建了一個與原來完全相反的commit,抵消了原來commit的效果
git revert <commit-hash> 

新建一個空分支

# 這種方式新建的分支(gh-pages)是沒有 commit 記錄的
git checkout --orphan gh-pages
# 刪除新建的gh-pages分支原本的內容,如果不刪除,提交將作為當前分支的第一個commit
git rm -rf .
# 查看一下狀態 有可能上面一條命令,沒有刪除還沒有提交的的文件
git state 

合并多個commit

# 這個命令,將最近4個commit合并為1個,HEAD代表當前版本。
# 將進入VIM界面,你可以修改提交信息。
git rebase -i HEAD~4 
# 可以看到其中分為兩個部分,上方未注釋的部分是填寫要執行的指令,
# 而下方注釋的部分則是指令的提示說明。指令部分中由前方的命令名稱、commit hash 和 commit message 組成
# 當前我們只要知道 pick 和 squash 這兩個命令即可。
# --> pick 的意思是要會執行這個 commit
# --> squash 的意思是這個 commit 會被合并到前一個commit

# 我們將 需要保留的 這個 commit 前方的命令改成 squash 或 s,然后輸入:wq以保存并退出
# 這是我們會看到 commit message 的編輯界面

# 其中, 非注釋部分就是兩次的 commit message, 你要做的就是將這兩個修改成新的 commit message。
# 
# 輸入wq保存并推出, 再次輸入git log查看 commit 歷史信息,你會發現這兩個 commit 已經合并了。
# 將修改強制推送到前端
git push -f origin master

修改遠程Commit記錄

git commit --amend
# amend只能修改沒有提交到線上的,最后一次commit記錄
git rebase -i HEAD~3
# 表示要修改當前版本的倒數第三次狀態
# 將要更改的記錄行首單詞 pick 改為 edit
pick 96dc3f9 doc: Update quick-start.md
pick f1cce8a test(Transition):Add transition test (#47)
pick 6293516 feat(Divider): Add Divider component.
# Rebase eeb03a4..6293516 onto eeb03a4 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit

保存并退出,會彈出下面提示

# You can amend the commit now, with
# 
#   git commit --amend
# 
# Once you are satisfied with your changes, run
# 
#   git rebase --continue

# 通過這條命令進入編輯頁面更改commit,保存退出
git commit --amend
# 保存退出確認修改,繼續執行 rebase, 
git rebase --continue
# 如果修改多條記錄反復執行上面兩條命令直到完成所有修改

# 最后,確保別人沒有提交進行push,最好不要加 -f 強制推送
git push -f origin master

添加忽略文件

echo node_modules/ >> .gitignore

利用commit關閉一個issue

這個功能在Github上可以玩兒,Gitlab上特別老的版本不能玩兒哦,那么如何跟隨著commit關閉一個issue呢? 在confirm merge的時候可以使用一下命令來關閉相關issue:

fixes #xxxfixed #xxxfix #xxxcloses #xxxclose #xxxclosed #xxx

同步fork的上游倉庫

Github教程同步fork教程在Github上同步一個分支(fork)

設置添加多個遠程倉庫地址。

在同步之前,需要創建一個遠程點指向上游倉庫(repo).如果你已經派生了一個原始倉庫,可以按照如下方法做。

$ git remote -v
# List the current remotes (列出當前遠程倉庫)
# origin  https://github.com/user/repo.git (fetch)
# origin  https://github.com/user/repo.git (push)
$ git remote add upstream https://github.com/otheruser/repo.git
# Set a new remote (設置一個新的遠程倉庫)
$ git remote -v
# Verify new remote (驗證新的原唱倉庫)
# origin    https://github.com/user/repo.git (fetch)
# origin    https://github.com/user/repo.git (push)
# upstream  https://github.com/otheruser/repo.git (fetch)
# upstream  https://github.com/otheruser/repo.git (push)

同步更新倉庫內容

同步上游倉庫到你的倉庫需要執行兩步:首先你需要從遠程拉去,之后你需要合并你希望的分支到你的本地副本分支。從上游的存儲庫中提取分支以及各自的提交內容。 master 將被存儲在本地分支機構 upstream/master

git fetch upstream
# remote: Counting objects: 75, done.
# remote: Compressing objects: 100% (53/53), done.
# remote: Total 62 (delta 27), reused 44 (delta 9)
# Unpacking objects: 100% (62/62), done.
# From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
#  * [new branch]      master     -> upstream/master

檢查你的 fork's 本地 master 分支

git checkout master
# Switched to branch 'master'

合并來自 upstream/master 的更改到本地 master 分支上。 這使你的前 fork's master 分支與上游資源庫同步,而不會丟失你本地修改。

git merge upstream/master
# Updating a422352..5fdff0f
# Fast-forward
#  README                    |    9 -------
#  README.md                 |    7 ++++++
#  2 files changed, 7 insertions(+), 9 deletions(-)
#  delete mode 100644 README
#  create mode 100644 README.md

批量修改歷史commit中的名字和郵箱

1.克隆倉庫

注意參數,這個不是普通的clone,clone下來的倉庫并不能參與開發

git clone --bare https://github.com/user/repo.git
cd repo.git

2.命令行中運行代碼

OLD_EMAIL原來的郵箱
CORRECT_NAME更正的名字
CORRECT_EMAIL更正的郵箱

將下面代碼復制放到命令行中執行

git filter-branch -f --env-filter '
OLD_EMAIL="wowohoo@qq.com"
CORRECT_NAME="小弟調調"
CORRECT_EMAIL="更正的郵箱@qq.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

執行過程

Rewrite 160d4df2689ff6df3820563bfd13b5f1fb9ba832 (479/508) (16 seconds passed, remaining 0 predicted)
Ref 'refs/heads/dev' was rewritten
Ref 'refs/heads/master' was rewritten

3.同步到遠程倉庫

同步到push遠程git倉庫

git push --force --tags origin 'refs/heads/*'

我還遇到了如下面錯誤,lab默認給master分支加了保護,不允許強制覆蓋。Project(項目)->Setting->Repository 菜單下面的Protected branches把master的保護去掉就可以了。修改完之后,建議把master的保護再加回來,畢竟強推不是件好事。

remote: GitLab: You are not allowed to force push code to a protected branch on this project.

當上面的push 不上去的時候,先 git pull 確保最新代碼

git pull  --allow-unrelated-histories
# 或者指定分枝
git pull origin master --allow-unrelated-histories

查看某個文件歷史

git log --pretty=oneline 文件名  # 列出文件的所有改動歷史  
git show c178bf49   # 某次的改動的修改記錄  
git log -p c178bf49 # 某次的改動的修改記錄  
git blame 文件名     # 顯示文件的每一行是在那個版本最后修改。  
git whatchanged 文件名  # 顯示某個文件的每個版本提交信息:提交日期,提交人員,版本號,提交備注(沒有修改細節)  

打造自己的git命令

git config --global alias.st status
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.ci commit

配置好后再輸入git命令的時候就不用再輸入一大段了,例如我們要查看狀態,只需:

git st

中文亂碼的解決方案

git config --global core.quotepath false

新建倉庫

init

git init #初始化

status

git status #獲取狀態

add

git add file # .或*代表全部添加
git rm --cached <added_file_to_undo> # 在commit之前撤銷git add操作
git reset head # 好像比上面git rm --cached更方便

commit

git commit -m "message" #此處注意亂碼

remote

git remote add origin git@github.com:JSLite/test.git #添加源

push

git push -u origin master # push同事設置默認跟蹤分支  
git push origin master  
git push -f origin master # 強制推送文件,縮寫 -f(全寫--force)

clone

git clone git://github.com/JSLite/JSLite.js.git
git clone git://github.com/JSLite/JSLite.js.git mypro #克隆到自定義文件夾
git clone [user@]example.com:path/to/repo.git/ #SSH協議還有另一種寫法。

git clone支持多種協議,除了HTTP(s)以外,還支持SSH、Git、本地文件協議等,下面是一些例子。git clone <版本庫的網址> <本地目錄名>

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

本地

help

git help config # 獲取幫助信息  

add

git add *   # 跟蹤新文件   
git add -u [path]   # 添加[指定路徑下]已跟蹤文件   

rm

rm *&git rm *          # 移除文件  
git rm -f *            # 移除文件  
git rm --cached *      # 取消跟蹤  
git mv file_from file_to  # 重命名跟蹤文件  
git log   # 查看提交記錄  

commit

git commit #提交更新   
git commit -m 'message' #提交說明   
git commit -a #跳過使用暫存區域,把所有已經跟蹤過的文件暫存起來一并提交   
git commit --amend #修改最后一次提交   
git commit log #查看所有提交,包括沒有push的commit    
git commit -m "#133" #關聯issue 任意位置帶上# 符號加上issue號碼  
git commit -m "fix #133" commit關閉issue  
git commit -m '概要描述'
欧美激情aaaa_伊人久久久大香线蕉综合直播_日韩在线卡一卡二_亚洲成人人体
91精品国产91久久综合桃花 | 中文字幕一区二区三区四区| 久久精品一区二区三区不卡牛牛| 天天射综合影视| 国产精品一区二区91| 欧美视频在线观看一区| 国产精品久久久久aaaa| 美女视频黄 久久| 欧美日韩精品一二三区| 亚洲免费观看高清完整| 国产美女精品在线| 欧美一区二区三级| 五月婷婷欧美视频| 欧美人妖巨大在线| 国产精品乱码一区二区三区软件 | 日韩视频在线一区二区| 亚洲福利视频导航| 欧美色视频在线观看| 亚洲视频你懂的| 国产69精品久久久久777| 国产精品无码永久免费888| 亚洲丶国产丶欧美一区二区三区| 成人av免费观看| 自拍偷拍亚洲激情| 不卡免费追剧大全电视剧网站| 久久免费偷拍视频| 国产伦精一区二区三区| 久久久国产一区二区三区四区小说 | 国产欧美一区二区在线| 成人一区二区三区视频在线观看| 久久婷婷国产综合国色天香| 风流少妇一区二区| 中文字幕中文乱码欧美一区二区| 99久久国产综合精品色伊| 国产精品传媒视频| 欧美三级三级三级爽爽爽| 亚洲va欧美va人人爽午夜| 欧美视频在线观看一区二区| 久久精品国产99国产| 精品少妇一区二区三区视频免付费 | 成人小视频在线观看| 日本一区二区免费在线| 91丝袜高跟美女视频| 亚洲成人7777| 欧美一区二区三区精品| 国产福利91精品一区二区三区| 国产欧美日韩中文久久| 91啪亚洲精品| 久久66热re国产| 国产精品免费视频网站| 欧美日韩美少妇| 国产在线乱码一区二区三区| 国产精品毛片高清在线完整版| 色综合av在线| 国产精品123区| 亚洲激情五月婷婷| 日韩精品中文字幕在线一区| 色哟哟国产精品免费观看| 麻豆国产精品一区二区三区| 亚洲男人的天堂网| 欧美精品乱码久久久久久| 大美女一区二区三区| 日本不卡123| 亚洲免费观看高清完整版在线观看| 久久综合色播五月| 色综合网色综合| 国产乱人伦偷精品视频不卡| 丝袜国产日韩另类美女| ●精品国产综合乱码久久久久| 欧美精品第1页| 成人高清在线视频| 精品一区二区免费在线观看| 一区二区三区久久久| 国产精品久久免费看| 日韩欧美在线123| 欧美三日本三级三级在线播放| 国产高清不卡一区二区| 日本在线不卡一区| 亚洲一区二区在线视频| 久久久久久久久97黄色工厂| 欧美乱熟臀69xxxxxx| 91网上在线视频| 91蜜桃婷婷狠狠久久综合9色| 免费的国产精品| 天堂久久一区二区三区| 亚洲狠狠爱一区二区三区| 1000精品久久久久久久久| 国产精品人人做人人爽人人添| 538prom精品视频线放| 99视频热这里只有精品免费| 国产白丝精品91爽爽久久| 国产精品综合视频| 久久精品国产99久久6| 五月天欧美精品| 亚洲成av人影院在线观看网| 亚洲免费电影在线| 亚洲主播在线观看| 亚洲综合视频网| 天天综合色天天| 日本女人一区二区三区| 爽爽淫人综合网网站| 麻豆精品一区二区综合av| 亚洲成人av一区| 久久99久久99小草精品免视看| 精品在线你懂的| 国产白丝精品91爽爽久久| 色综合亚洲欧洲| 在线看国产一区二区| 91精品国产丝袜白色高跟鞋| 欧美一级午夜免费电影| 精品捆绑美女sm三区| 亚洲欧洲性图库| 七七婷婷婷婷精品国产| 蜜臀久久99精品久久久久宅男 | 一区二区三区蜜桃| 亚洲国产精品一区二区尤物区| 亚洲成人精品一区二区| 国产在线播放一区三区四| www.欧美色图| 91精品国产91久久综合桃花 | 国产成人在线观看| 欧美日韩一区二区三区在线| 亚洲精品一区二区三区蜜桃下载 | 成人国产精品免费观看视频| 在线视频中文字幕一区二区| 精品福利av导航| 亚洲人成影院在线观看| 午夜精品一区在线观看| 国产综合久久久久久鬼色| 日本高清免费不卡视频| 精品不卡在线视频| 一区二区三区四区视频精品免费| 国产乱妇无码大片在线观看| 欧美性猛交xxxx乱大交退制版| 久久精品水蜜桃av综合天堂| 香港成人在线视频| 成人免费高清在线| 91麻豆精品国产91久久久久| 久久色视频免费观看| 一区二区三区欧美| 成人一区二区视频| 日韩一级片在线观看| 亚洲一区在线观看免费观看电影高清| 精品一区二区精品| 欧美日韩国产综合草草| 国产精品嫩草99a| 精品一区二区综合| 这里只有精品99re| 亚洲一区二区不卡免费| 99久精品国产| 国产精品黄色在线观看| 国产成人av一区二区三区在线观看| 欧美一级高清大全免费观看| 亚洲国产精品欧美一二99| 91女厕偷拍女厕偷拍高清| 国产精品久久久久久久浪潮网站| 国产在线精品免费| 久久在线观看免费| 精油按摩中文字幕久久| 日韩免费观看2025年上映的电影 | 91精品国产手机| 日产精品久久久久久久性色| 欧美揉bbbbb揉bbbbb| 亚洲一区二区三区激情| 91在线视频网址| 亚洲免费观看在线观看| 972aa.com艺术欧美| 国产精品国产三级国产三级人妇 | 自拍偷拍亚洲欧美日韩| 91丨porny丨最新| 亚洲色图视频网站| 91国偷自产一区二区三区成为亚洲经典 | 日韩福利视频网| 欧美sm极限捆绑bd| 国产91丝袜在线18| 一区二区中文视频| 色吊一区二区三区 | 色婷婷综合激情| 亚洲一区二区三区在线| 在线欧美日韩精品| 一区二区三区精品视频在线| 色婷婷综合久久久久中文一区二区| 亚洲网友自拍偷拍| 精品日韩在线观看| 蜜桃一区二区三区在线| 亚洲精品一区二区三区香蕉| 高清不卡一二三区| 亚洲色图欧美在线| 欧美日韩中字一区| 久久成人免费日本黄色| 欧美mv和日韩mv国产网站| 国产精品主播直播| 国产精品久久久久久久久晋中 | 日精品一区二区三区| 久久色在线观看| 国产成人av一区二区| **欧美大码日韩| 欧美一级高清片| 高清视频一区二区| 性久久久久久久久|