1. 史上最全 Git 圖文教程,沒有之一

        共 14178字,需瀏覽 29分鐘

         ·

        2024-07-25 10:30

        來源:juejin.cn/post/7245176801491894333

        ?? 歡迎加入小哈的星球,你將獲得: 專屬的項目實戰(zhàn) / 1v1 提問 / Java 學(xué)習(xí)路線 / 學(xué)習(xí)打卡 / 每月贈書 / 社群討論

        • 新項目:《從零手擼:仿小紅書(微服務(wù)架構(gòu))》 正在持續(xù)爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 點擊查看項目介紹
        • 《從零手擼:前后端分離博客項目(全棧開發(fā))》 2期已完結(jié),演示鏈接:http://116.62.199.48/;

        截止目前,累計輸出 50w+ 字,講解圖 2200+ 張,還在持續(xù)爆肝中.. 后續(xù)還會上新更多項目,目標(biāo)是將 Java 領(lǐng)域典型的項目都整一波,如秒殺系統(tǒng), 在線商城, IM 即時通訊,Spring Cloud Alibaba 等等,戳我加入學(xué)習(xí),解鎖全部項目,已有1800+小伙伴加入

        Git安裝

        安裝

        1.先去官網(wǎng)下載這個軟件, 準(zhǔn)備安裝到本電腦中

        https://git-scm.com/

        2.根據(jù)自己電腦系統(tǒng)下載此軟件到本機

        Windows 系統(tǒng)直接下載 .exe 文件即可,macOS 系統(tǒng)使用 Homebrew 命令行安裝,終端輸入 git --version 確認安裝

        圖片

        3.默認選擇默認安裝路徑即可,如若想更改路徑,務(wù)必使用英文路徑

        4.對于 Windows 系統(tǒng),查看安裝是否成功: 在任意文件夾右鍵,查看是否有Git Base Here 選項,有就成功了

        圖片
        介紹

        Git 的三個區(qū)域:

        • 工作區(qū): 處理工作的區(qū)域
        • 暫存區(qū): 臨時存放的區(qū)域
        • 本地git倉庫: 最終的存放區(qū)域

        在文件夾的體現(xiàn)如下:

        • 工作區(qū): 在你電腦里看到的目錄
        • 暫存區(qū): 在.git文件夾內(nèi)的index中 (二進制記錄)
        • 版本庫: 指的整個.git文件夾 (也認為是本地倉庫)

        在代碼中的體現(xiàn)如下:

        圖片

        Git使用

        官方文檔:教程鏈接[1]

        菜鳥教程:教程鏈接[2]

        Git配置

        安裝完 Git 之后,要做的第一件事就是設(shè)置你的用戶名和郵件地址。因為每一個 Git 提交都會使用這些信息

        命令格式如下:中文自己看情況換

        • git config: 固定命令,設(shè)置git相關(guān)配置
        • --global: 全局配置;一次配置,整機在使用git時都生效
        git config --global user.name 你的用戶名
        git config --global user.email 你的郵箱地址

        運行命令效果如下:

        圖片

        配置后,可以運行如下命令查看是否成功

        git config --list
        #如果信息太多,可以輸入 q 退出

        運行命令效果如下:

        圖片

        出現(xiàn)以上內(nèi)容即為注冊成功。如果后續(xù)想要修改,只需要重新執(zhí)行一下命令即可

        文件右側(cè)標(biāo)記

        一般使用 VSCode 打開一個包含git倉庫的文件夾時,會有這些標(biāo)記

        圖片

        右側(cè)沒有標(biāo)記的時候為未修改 或 此文件/文件夾,被git忽略不跟蹤變化

        • M:已修改(Modified) - 文件已被修改但還沒有被添加到暫存區(qū)
        • A:已添加(Added) - 文件已經(jīng)被添加到暫存區(qū),但還沒有被提交
        • D:已刪除(Deleted) - 文件已經(jīng)被刪除,并且已經(jīng)被標(biāo)記為刪除,但還沒有提交
        • R:已重命名(Renamed) - 文件已經(jīng)被重命名,這也算作是一種修改,需要被添加到暫存區(qū)
        • C:已復(fù)制(Copied) - 文件已經(jīng)被復(fù)制,這也算作是一種修改,需要被添加到暫存區(qū)
        • U:已更新但未融合(Updated but Unmerged) - 這表示一個文件已經(jīng)被更新了,但在合并時發(fā)生了沖突,需要手動解決沖突后再標(biāo)記為已解決
        Git基礎(chǔ)命令

        初始化空的Git倉庫

        新建一個文件夾或現(xiàn)有的文件夾并不是 git 倉庫,因為文件夾內(nèi)不包含 .git 文件夾,沒有被 git 管理

        可以在新文件夾或現(xiàn)有文件夾,運行如下命令得到 .git 文件夾,初始化成功則可讓 git 開始準(zhǔn)備管理

        # 初始化 git 倉庫, 產(chǎn)物: .git 文件夾 (所在文件夾"內(nèi)"被管理)
        git init

        例如,在新文件夾中輸入git init命令用于初始化空的git版本庫

        圖片

        初始化空的 git 倉庫成功后,在項目文件夾中,開啟顯示隱藏文件,即可查看 .git 文件夾

        • 對于 Windows 系統(tǒng),在查看里面勾選隱藏的項目選項
        • 對于 macOS 系統(tǒng),使用快捷鍵Command + Shift + .切換隱藏文件顯示

        記錄更新到Git倉庫

        每當(dāng)完成了一個階段的目標(biāo),想要記錄下它時,就將它提交到倉庫

        核心操作:工作區(qū)開發(fā)--->將修改后的文件添加到暫存區(qū)--->將暫存區(qū)的文件記錄到版本庫

        把工作區(qū)變化放到暫存區(qū)中,執(zhí)行如下命令

        # 將 index.html 添加到暫存區(qū)
        git add index.html

        # 將css目錄下一切添加到暫存區(qū)
        git add css

        如下命令,可以一次性把所有變化文件放入暫存區(qū)

        # .的意思是當(dāng)前目錄下所有變化都暫存
        git add .

        把暫存區(qū)內(nèi)容,提交到版本庫,命令如下(此處文字說明可以不加引號)

        git commit -m '提交的內(nèi)容說明'

        過程圖示:

        圖片

        以上命令相當(dāng)于存檔了一次,在版本庫中產(chǎn)生一次提交記錄并生成版本號

        本次存檔,不耽誤我們在工作區(qū) (項目文件夾) 下繼續(xù)編寫項目

        Git日志及狀態(tài)查看

        查看所有提交的日志記錄,命令如下

        git log

        運行命令效果如下:

        圖片

        當(dāng)我們的日志越來越多,可能想要簡化查看,可以輸入如下命令

        --oneline:在一行顯示簡略信息

        git log --oneline

        運行命令效果如下:

        圖片

        如果改的代碼過多,忘記改過哪些了,可以運行如下命令來查看 git 倉庫變化,只能看未提交的所有變更的文件狀態(tài)

        git status

        運行命令效果如下:

        圖片

        暫存并再次提交,產(chǎn)生一次版本記錄

        git add .
        git commit -m '新建登錄頁面_和樣式'

        過程圖示:

        圖片

        Git版本回退

        時光機,回到過去~

        回退命令語法如下

        git reset --hard 版本號

        查看版本號(每次的版本號隨機生成)

        git log --oneline

        圖片

        嘗試回退到 477321b 這次記錄上

        git reset --hard 477321b

        觀察工作區(qū),回退成功

        圖片

        如果想要在回到最近一次提交的記錄,但發(fā)現(xiàn)git log看不到未來的記錄了,問題不大。輸入git reflog命令,可以查看 git 所有的操作記錄,包括你的reset記錄

        git reflog

        運行命令效果如下:

        圖片

        拓展命令:

        • git bash(終端)清屏:clear
        • git bash(終端)另起一頁:Ctrl + L

        Git忽略文件

        有的時候,我們某些文件或文件夾不想讓 git 進行跟蹤管理。這時候可以在 .git 文件夾同級目錄下新增.gitignore的忽略文件并寫入忽略規(guī)則(此處的文件名就是 .gitignore ,不是后綴)

        項目文件夾結(jié)構(gòu)如下:

        圖片
        # .gitignore內(nèi)容:
        password.txt

        其余用法:
        # 忽略文件夾
        css
        # 忽略文件夾下的某個文件
        css/index.js
        # 忽略文件夾下某類文件
        css/*.js

        根目錄新建 password.txt,查看 git 追蹤到了哪些變化

        git status

        運行命令效果如下:

        圖片

        發(fā)現(xiàn)只新增了.gitignore ,符合規(guī)則的都被忽略掉了

        .gitignore文件在項目中可以根據(jù)腳手架自動生成,無需自己編寫,當(dāng)然如果你非要寫,以下是Vue官方自動生成的.gitignore文件代碼,可供復(fù)制使用

        # Logs
        logs
        *.log
        npm-debug.log*
        yarn-debug.log*
        yarn-error.log*
        pnpm-debug.log*
        lerna-debug.log*

        node_modules
        dist
        dist-ssr
        *.local

        # Editor directories and files
        .vscode/*
        !.vscode/extensions.json
        .idea
        .DS_Store
        *.suo
        *.ntvs*
        *.njsproj
        *.sln
        *.sw?
        Git分支

        分支本質(zhì)

        分支其實就是一個叫HEAD的指針標(biāo)記,每次代碼提交,此HEAD指針都會往后移動一次,保證指向的 (并且工作區(qū)里的) 都是最后一次提交

        例如:當(dāng)我們輸入命令:git reset --hard a3bcab2,HEAD指針會移動,而且HEAD移動后,會影響工作區(qū)里的代碼

        創(chuàng)建分支

        • 創(chuàng)建分支命令如下
        # 創(chuàng)建分支
        git branch 分支名

        該命令創(chuàng)建分支后不會自動切換分支,我們可以運行命令查看現(xiàn)在這個 .git 版本庫里所有分支

        • 查看當(dāng)前版本庫所有分支命令如下
        # 查看當(dāng)前版本庫所有分支,綠色帶*代表現(xiàn)在所處的分支
        git branch

        運行命令效果如下:

        圖片
        • 手動切換到分支上
        # 切換分支命令
        git checkout 分支名

        運行命令效果如下:

        圖片

        第一次創(chuàng)建并切換到 reg 分支,你會發(fā)現(xiàn) master 分支上的所有代碼 (和當(dāng)前節(jié)點所有提交記錄) 都被復(fù)制了過來 了,我們只需要在這個基礎(chǔ)上接著往后開發(fā)就行

        過程圖示:

        分支下開發(fā)流程

        我們現(xiàn)在就可以在當(dāng)前 reg 分支下來編寫注冊頁面的邏輯代碼,例如新建reg.html文件,并隨便寫點內(nèi)容。隨后暫存并提交一次,這次提交的記錄會出現(xiàn)在這里,如圖

        圖片

        以后在當(dāng)前 reg 分支下開發(fā),就會在 reg 范圍內(nèi),每次提交產(chǎn)生一次版本記錄,不會影響到別的分支

        分支合并

        我們可以把分支里寫好的代碼,合并到主分支或其他分支上,步驟如下:

        首先,切換到你要合并到的目標(biāo)分支上(以master主分支為例)

        # 切換分支
        git checkout master

        切換分支后,HEAD指針位置如下:

        圖片

        合并命令語法

        # 把目標(biāo)分支名下的所有記錄, 合并到當(dāng)前分支下
        git merge 目標(biāo)分支名

        這里我們執(zhí)行命令git merge reg,執(zhí)行后效果如圖:

        圖片

        可見,reg 代碼提交記錄已經(jīng)復(fù)制到了 master (主分支) 中

        分支刪除

        假如注冊功能開發(fā)完畢,代碼已經(jīng)合并到 master 分支上,我們已經(jīng)不需要 reg 分支

        命令如下

        git branch -d 分支名

        如果分支的修改沒有被合并到其他分支上,Git 會提示一個類似以下的錯誤信息:

        error: The branch 'branch_name' is not fully merged. If you are sure you want to delete it, run 'git branch -D branch_name'.

        在這種情況下,Git 建議你確認是否要刪除這個分支。如果你確定要刪除該分支并且不在乎丟失該分支的修改,你可以使用git branch -D <branch_name>命令來強制刪除該分支。但請注意,這樣會丟失掉分支上的未合并修改

        分支合并時的沖突問題

        在兩個分支修改了同一個文件并提交過,在合并的時候,就會產(chǎn)生沖突

        這里模擬一次簡單的沖突:

        • 在 master 分支下,修改login.html的某行代碼,并完成一次暫存提交

        圖片
        • 切換到 reg 分支下,也修改login.html的對應(yīng)行代碼,并完成一次暫存提交

        圖片
        • 再切換回到 master 分支下,用合并命令,把 reg 分支下代碼和變化合并過來,不出意外就會出現(xiàn)沖突了
        圖片

        發(fā)生沖突后,VSCode界面

        圖片

        此時我們要進行抉擇:采用當(dāng)前更改、采用傳入更改全部保留

        選擇保留方式后,需要再次暫存提交一次

        圖片

        此時結(jié)束沖突狀態(tài),變回正常狀態(tài)

        打印沖突合并后的日志記錄

        圖片

        總結(jié):當(dāng)我們合并遇到?jīng)_突了,應(yīng)手動解決,然后暫存,提交一次即可

        Git分支流程圖詳解(拓展)

        HEAD頭指針,它指向當(dāng)前所在的分支或者某個具體的提交記錄。每次提交會產(chǎn)生新的記錄master和HEAD會后移

        圖片

        以當(dāng)前節(jié)點為基準(zhǔn)創(chuàng)建新的分支 (包含之前的所有提交記錄),git branch reg 就會在當(dāng)前的提交記錄上創(chuàng)建一個新的指針,名稱為reg

        圖片

        git checkout reg切換的是HEAD指針指向 (切換分支)

        圖片

        注冊頁面新建后,git add .添加到暫存區(qū),git commit -m 產(chǎn)生了一次提交記錄

        圖片

        注冊頁面的樣式新建后暫存提交,產(chǎn)生了一次提交記錄

        圖片

        合并分支,例如把 A 合并到 B上

        • git checkout B,切換到目標(biāo)分支 B
        • git merge A,把 A 分支記錄合并到所在 B 分支下

        先切換到主分支git checkout master

        圖片

        合并reg分支git merge reg

        圖片

        在reg分支下,修改了index.html文件,并暫存提交,產(chǎn)生了記錄

        圖片

        切換到master分支,并修改index.html文件(同一個文件),暫存提交,產(chǎn)生了記錄

        圖片

        在master分支中,想要把reg合并過來。由于修改了同一個文件,會報錯,需要解決沖突

        圖片

        手動解決沖突后,會產(chǎn)生一個新的提交記錄

        圖片

        刪除reg分支,全部過程結(jié)束

        圖片
        Git遠程倉庫

        介紹

        遠程倉庫是指托管在因特網(wǎng)或其他網(wǎng)絡(luò)上的 Git 倉庫,可以存儲我們版本庫的所有記錄和存檔記錄

        遠程倉庫在團隊協(xié)作中發(fā)揮著重要的作用。它不僅可以充當(dāng)備份存儲,保護你的代碼免受數(shù)據(jù)丟失的風(fēng)險,還可以讓團隊成員之間輕松地共享代碼、查看代碼變更、進行代碼審查等

        圖片

        主流的遠程倉庫有 GitHub (gay hub)全球最大的同行交友社區(qū),以及服務(wù)器在國內(nèi)的 gitee(碼云)。由于 GitHub 服務(wù)器在國外,方便起見,這里以碼云為例,供初學(xué)者參考,GitHub 流程與 gitee 類似

        注冊

        注冊登錄 gitee.com 網(wǎng)站以后,添加主郵箱為自己本地 git 倉庫設(shè)置的郵箱,注意一定要相同,否則無法正確提交 如果忘記了本地設(shè)置的郵箱地址:

        • 可以打開控制臺輸入 git config --list 重新查看郵箱地址
        • 當(dāng)然也可以使用 git config --global user.email 你的郵箱地址重新覆蓋原來的郵箱地址

        郵箱設(shè)置界面不要勾選不公開我的郵箱地址,否則也無法正常提交

        圖片

        倉庫新建

        可以選擇創(chuàng)建一個遠程倉庫的項目 (可以多個),創(chuàng)建界面如下

        圖片

        勾選完成后選擇創(chuàng)建,創(chuàng)建后, 會得到一個遠程倉庫的地址鏈接,一般是以.git結(jié)尾的地址

        地址分為兩種最常用的兩種傳輸協(xié)議:

        • HTTPS協(xié)議: 需要輸入用戶名和密碼https://gitee.com/(userName)/(repositoryName).gitssh
        • SSH協(xié)議: 需要配置密鑰,可免密碼登錄[email protected]:userName/repositoryName.git

        選擇SSH路徑,界面如下

        圖片

        SSH配置

        我們可以在本機一次性配置 SSH 以后免密登錄,SSH 密鑰組成和作用如下:

        • 作用: 實現(xiàn)本地倉庫和 gitee 平臺之間免登錄的加密數(shù)據(jù)傳輸
        • 組成: id_rsa (私鑰文件,存放于客戶端的電腦中即可)、id_rsa.pub (公鑰文件,需要配置到 gitee 平臺中)

        私鑰加密的信息,只能通過公鑰解密。公鑰加密的信息,只能通過私鑰解密。安全性高!

        SSH 密鑰創(chuàng)建與使用步驟:

        • 先在本機生成一個密鑰 (以后也可以重新生成、重新配置),打開一個終端,輸入以下命令:

          ssh-keygen -t rsa -C "你注冊賬號的郵箱"
        • 連續(xù)敲擊 3 次回車,即可在C:\Users\用戶名文件夾.ssh目錄中生成id_rsaid_rsa.pub兩個文件

        • 使用 VSCode 打開id_rsa.pub文件,復(fù)制里面的文本內(nèi)容

        • 粘貼配置到 碼云 -> 設(shè)置 -> ssh 公鑰 中即可

        • 如果為 mac ,可進入以下教程查看:mac獲取公鑰

        初始化空倉庫

        先給本地倉庫配置個遠程倉庫的地址, 建立倉庫之間的鏈接

        由于每次 push 操作都需要帶上遠程倉庫的地址,十分麻煩,我們可以給倉庫設(shè)置一個別名

        # 給遠程倉庫設(shè)置一個別名
        git remote add 倉庫別名 倉庫地址
        git remote add origin [email protected]:(username)/repository.git

        # 刪除 origin 這個別名
        git remote remove origin

        # 使用 -u 記錄 push 到遠端分支的默認值,將來直接 git push 即可
        git push -u 倉庫別名 分支名

        圖片

        下面為實際操作舉例:

        • 隨便新建一個項目文件夾,初始化 git,隨后在項目文件中隨便填充點內(nèi)容,這里我新增一個.gitignore文件,隨后暫存提交到本地 git 庫

        圖片
        • 輸入以下命令:
        # 注意:這里的existing_git_repo是你的項目根路徑
        # 如果你是在項目文件夾開啟的終端,忽略此行
        cd existing_git_repo

        # 添加遠程倉庫關(guān)聯(lián),倉庫別名origin,可以隨意更改,后接ssh地址
        # 此處的ssh是自動生成的,可以去gitee空倉庫的代碼頁直接復(fù)制即可
        git remote add origin [email protected]:li-houyi/test-factory.git

        # 第一次推送到遠程時需要指定具體的分支,因為遠程倉庫并沒有這個分支
        # 使用 -u 記錄 push 到遠端分支的默認值,將來直接 git push 即可
        git push -u origin "master"
        • 出現(xiàn)此頁面即為成功:

        圖片

        注意:推送的本地倉庫一定要非空并且本地暫存提交過,不然會報錯!這點也很好理解,你傳個空的項目到一個空倉庫,這可不得給你報錯嗎

        • 推送成功后重新進入 gitee 倉庫頁面查看是否正確推送

        圖片

        空倉庫創(chuàng)建成功后可以在管理頁面將倉庫開源,當(dāng)然也可以不設(shè)置開源(默認私有)

        克隆項目

        如果你想要從遠程倉庫克隆一份項目代碼到本地進行開發(fā),可以使用 git clone 命令

        git clone [options] <repository-url> [directory]
        # directory(可選)克隆后的本地倉庫所處的目錄名稱(默認創(chuàng)建與遠程倉庫名字相同的目錄)

        常見選項:

        • -b <branch>--branch <branch> 指定要克隆的遠程倉庫的特定分支,它不會影響克隆操作所獲取的分支數(shù)量,而只是指定了默認要檢出的分支(不指定則默認克隆遠程倉庫的主分支)
        • --depth <depth> 指定克隆的深度,即只克隆指定數(shù)量的提交歷史
        • --single-branch: 僅克隆指定分支以及該分支上的歷史記錄,不下載其他分支
        • --recurse-submodules: 初始化并克隆子模塊的內(nèi)容
        • -n 或 --no-checkout: 克隆后不立即檢出任何分支,保留 HEAD 指向原始倉庫的默認分支
        • -o <name>--origin <name> 自定義遠程倉庫的別名。
        • -u <remote> <branch>--set-upstream-to=<remote>/<branch> 設(shè)置追蹤關(guān)系,使得本地分支自動與指定的遠程分支關(guān)聯(lián)

        如果項目只有一個分支,那么以上代碼執(zhí)行完畢就已經(jīng)克隆結(jié)束了(git clone 默認拉取 master 分支),不過實際開發(fā)中,并非只有一個分支,于是我們還需執(zhí)行以下步驟:

        • 在本地建分支,分支名與遠程分支名相同,查看遠程分支名使用git branch -r
        git checkout -b 對應(yīng)遠程分支名
        • 拉取遠程分支 (不要在 master 分支直接拉取對應(yīng)分支的代碼,切換到新建的分支)
        # 每次拉取都需要指定遠程倉庫名和分支名
        git pull 遠程倉庫名 分支名
        • 以上兩行命令可以合并寫做一行(創(chuàng)建并拉取遠程分支代碼)
        git checkout -b 分支名 origin/分支名
        • 拓展: 設(shè)置 git pull 默認拉取的分支(設(shè)置本地分支與遠程分支相關(guān)聯(lián))
        git branch --set-upstream-to=origin/遠程分支名 本地分支名

        Git遠程倉庫流程回顧

        Step1:

        圖片

        Step2:

        圖片

        Step3:

        圖片

        Step4:

        圖片

        Git常用命令總覽

        本命令默認遠程倉庫名為origin、默認遠程倉庫主分支名為master、<>為必填項,[]為可選項

        圖片

        ?? 歡迎加入小哈的星球,你將獲得: 專屬的項目實戰(zhàn) / 1v1 提問 / Java 學(xué)習(xí)路線 / 學(xué)習(xí)打卡 / 每月贈書 / 社群討論

        • 新項目:《從零手擼:仿小紅書(微服務(wù)架構(gòu))》 正在持續(xù)爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 點擊查看項目介紹;
        • 《從零手擼:前后端分離博客項目(全棧開發(fā))》 2期已完結(jié),演示鏈接:http://116.62.199.48/;

        截止目前,累計輸出 50w+ 字,講解圖 2200+ 張,還在持續(xù)爆肝中.. 后續(xù)還會上新更多項目,目標(biāo)是將 Java 領(lǐng)域典型的項目都整一波,如秒殺系統(tǒng), 在線商城, IM 即時通訊,Spring Cloud Alibaba 等等,戳我加入學(xué)習(xí),解鎖全部項目,已有1800+小伙伴加入


              
                 

        1. 我的私密學(xué)習(xí)小圈子~

        2. 偷偷曝光下國內(nèi)軟件外包公司?。?024 最新版,很全?。?/a>

        3. 還在用Jenkins?這套輕量級自動化部署方案賊帶勁!

        4. 史上最全 Maven 教程,沒有之一

        最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

        獲取方式:點“在看”,關(guān)注公眾號并回復(fù) Java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

        PS:因公眾號平臺更改了推送規(guī)則,如果不想錯過內(nèi)容,記得讀完點一下在看,加個星標(biāo),這樣每次新文章推送才會第一時間出現(xiàn)在你的訂閱列表里。

        “在看”支持小哈呀,謝謝啦

        瀏覽 102
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
          
          

            1. 操大逼网站 | 拳头伸进身体里宫交3p | 青草久久视频 | 亚洲国产中文字幕在线播放 | 亚欧黄色|