国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

PyCharm圖形化Git與分支管理:界面操作對(duì)應(yīng)命令及避坑

PyCharm圖形化Git與分支管理:界面操作對(duì)應(yīng)命令及避坑 命令行里git status、git add -p、git rebase -i用得飛起的人第一次在 PyCharm 里點(diǎn)開右下角那個(gè)分支名字時(shí)往往會(huì)愣一下這些操作在圖形界面里到底對(duì)應(yīng)哪條命令點(diǎn)下去會(huì)不會(huì)出事反過來一直用 PyCharm 圖形化版本控制、分支管理的人切回命令行又常常心里沒底覺得自己是在盲操作。這中間的落差其實(shí)不是能力問題而是沒人把界面元素和 Git 底層命令的對(duì)應(yīng)關(guān)系講清楚。這篇內(nèi)容就干這一件事把 PyCharm 的 Git 版本控制與分支管理拆成可對(duì)照、可復(fù)現(xiàn)的操作鏈路。從倉(cāng)庫(kù)初始化、忽略規(guī)則、拆塊提交到分支創(chuàng)建切換、Merge 與 Rebase 的取舍、三窗格沖突解決再到歷史追溯和誤操作救火每一步我都會(huì)說明它在命令行里等價(jià)于什么、為什么這么設(shè)計(jì)、什么時(shí)候會(huì)翻車。適合兩類人看一類是剛開始用 IDE 做團(tuán)隊(duì)協(xié)作的新手另一類是命令行熟手但想搞清楚 PyCharm 到底在背后干了什么的老兵。全程基于常見實(shí)踐補(bǔ)充細(xì)節(jié)你手上的版本如果界面有差異以自己 IDE 的實(shí)際顯示為準(zhǔn)。1. 圖形化 Git 不是黑箱面板與命令的對(duì)應(yīng)關(guān)系1.1 先搞明白 PyCharm 只是 Git 的一層殼很多人對(duì) IDE 里的 Git 有天然的不信任感覺得看不見命令就不可控。實(shí)際情況恰好相反PyCharm 本身不實(shí)現(xiàn)版本控制邏輯它只是調(diào)用你系統(tǒng)上安裝的 Git 可執(zhí)行文件然后把命令輸出解析成界面。你在 Commit 面板里勾選幾個(gè)代碼塊點(diǎn)提交它在背后執(zhí)行的就是一條帶路徑參數(shù)的git commit你在分支彈窗里點(diǎn) Rebase它執(zhí)行的就是git rebase。理解了這一層界面上任何一個(gè)按鈕你都能反推出它的命令風(fēng)險(xiǎn)也就變得可評(píng)估了。驗(yàn)證方法很簡(jiǎn)單打開 Git 工具窗口里的 Console 標(biāo)簽頁你在圖形界面做的每一次操作都能在這里看到對(duì)應(yīng)的命令和輸出。我習(xí)慣在處理復(fù)雜合并之前先把這個(gè) Console 面板開著操作完回頭掃一眼執(zhí)行了什么。這個(gè)習(xí)慣救過我兩次一次是發(fā)現(xiàn)某個(gè)撤銷按鈕實(shí)際執(zhí)行的是硬回退一次是發(fā)現(xiàn)提交時(shí) IDE 自動(dòng)加了簽名參數(shù)導(dǎo)致鉤子行為不同。配置入口在 Settings 里的 Version Control 分組第一項(xiàng) Git 會(huì)顯示當(dāng)前檢測(cè)到的可執(zhí)行文件路徑和版本號(hào)。如果這里顯示Git not found說明系統(tǒng) PATH 沒配好手動(dòng)指定安裝目錄下的可執(zhí)行文件即可。版本上有一點(diǎn)值得注意Git 2.23 之后git checkout被拆成了git switch和git restore較新的 IDE 版本在切換分支時(shí)調(diào)用的已經(jīng)是git switch如果你機(jī)器上的 Git 版本太老某些操作會(huì)靜默失敗或者報(bào)錯(cuò)信息很奇怪。團(tuán)隊(duì)統(tǒng)一環(huán)境的時(shí)候把 Git 版本也納入約定范圍能省掉很多莫名其妙的排查。1.2 三個(gè)入口各管什么別混著用PyCharm 里跟 Git 相關(guān)的界面主要分布在三個(gè)地方職責(zé)其實(shí)分得很清楚混用會(huì)讓人抓狂。入口主要職責(zé)典型操作提交工具窗口Commit管理待提交的改動(dòng)勾選代碼塊、寫提交信息、提交并推送Git 工具窗口Log查看與操作提交歷史查看分支圖、Cherry-Pick、Revert、Reset右下角分支菜單分支級(jí)操作新建、切換、合并、變基、拉取底部狀態(tài)欄還有幾個(gè)容易被忽略的信息當(dāng)前分支名、是否有未推送提交向上的箭頭數(shù)字、是否有未拉取提交向下的箭頭數(shù)字。我見過不少人只看提交按鈕不看狀態(tài)欄結(jié)果在落后遠(yuǎn)端十幾個(gè)提交的分支上繼續(xù)寫代碼最后合并時(shí)沖突爆炸。養(yǎng)成一個(gè)習(xí)慣動(dòng)手寫代碼前掃一眼狀態(tài)欄的箭頭向下的數(shù)字不為零就先更新。編輯器里的文件名顏色也是信息源。默認(rèn)配色下未納入版本控制的文件是紅色新加且已暫存的是綠色修改過的是藍(lán)色被忽略的是灰褐色。這套顏色可以在 Settings 的 Version Control 下的 File Status Colors 里改團(tuán)隊(duì)里如果有人用深色主題有人用淺色主題統(tǒng)一一下配色方案能減少溝通成本。至于每個(gè)文件具體改了哪幾行看行號(hào)右側(cè)的變更標(biāo)記條就夠了綠色豎條是新增行藍(lán)色是修改行灰色小三角是刪除位置點(diǎn)一下能看到該行的原始內(nèi)容。1.3 為什么建議先在 IDE 里熟悉再回命令行有個(gè)觀點(diǎn)我想說清楚圖形化版本控制不是新手拐杖它是降低認(rèn)知負(fù)荷的工具。分支合并這類操作沖突文件可能幾十個(gè)在命令行里你要反復(fù)git status看還剩哪些沒解決在 IDE 里左側(cè)列著所有沖突文件解決一個(gè)劃掉一個(gè)進(jìn)度一目了然。再比如拆塊提交命令行的git add -p要一個(gè)個(gè) chunk 交互式回答 y/nPyCharm 里直接勾復(fù)選框視覺上還帶著 diff 高亮。但反過來說完全依賴界面也有代價(jià)。有幾種情況命令行明顯更順手批量操作比如給二十個(gè)文件同時(shí)打補(bǔ)丁、復(fù)雜的交互式變基、需要精確控制提交時(shí)間的場(chǎng)景、以及排查為什么 IDE 顯示的狀態(tài)和實(shí)際不一致這類疑難雜癥。我的建議是把界面當(dāng)主力把命令行 Console 當(dāng)兜底遇到界面做不到的事直接在 IDE 內(nèi)置終端里敲命令兩邊共用同一個(gè)工作區(qū)互不沖突。2. 從零接入倉(cāng)庫(kù)初始化、忽略規(guī)則與第一次提交2.1 兩種接入路徑新建倉(cāng)庫(kù)還是克隆已有倉(cāng)庫(kù)新項(xiàng)目的起步方式取決于代碼在哪。如果是本地已經(jīng)有一堆文件、想納入版本控制走 VCS 菜單里的Enable Version Control Integration選擇 Git它會(huì)在項(xiàng)目根目錄執(zhí)行g(shù)it init。注意這一步只是創(chuàng)建了.git目錄還沒有任何提交此時(shí)所有文件都是未跟蹤狀態(tài)。如果代碼已經(jīng)在遠(yuǎn)端倉(cāng)庫(kù)里走Get from VCS填倉(cāng)庫(kù)地址選擇本地目錄它會(huì)執(zhí)行g(shù)it clone并自動(dòng)把項(xiàng)目配置好這是團(tuán)隊(duì)協(xié)作里最常見的路徑。一個(gè)容易踩的細(xì)節(jié)初始化倉(cāng)庫(kù)的位置。如果你只有某個(gè)子目錄需要版本控制而項(xiàng)目根目錄是另一個(gè)更大的目錄一定要在正確的層級(jí)執(zhí)行初始化。我見過有人在用戶主目錄下誤執(zhí)行了初始化結(jié)果一個(gè)git add .把整個(gè)家目錄的東西都想加進(jìn)去.git目錄膨脹到幾個(gè) G。所以初始化之后第一件事永遠(yuǎn)是確認(rèn)根目錄對(duì)不對(duì)看一眼 IDE 里顯示的項(xiàng)目根和.git目錄是否在同一層??寺÷窂缴线€有個(gè)憑證問題。用 HTTPS 地址克隆時(shí)第一次推送會(huì)讓你輸入賬號(hào)密碼或者令牌用 SSH 地址則需要提前配好密鑰對(duì)把公鑰上傳到遠(yuǎn)端。IDE 在 Settings 的 Version Control 下的 Git 配置里可以指定 SSH 可執(zhí)行文件Windows 上尤其要注意這一點(diǎn)系統(tǒng)自帶的和 Git 安裝包里帶的那份可能不是同一個(gè)選錯(cuò)了會(huì)出現(xiàn)命令行能推、IDE 推不了的怪現(xiàn)象。2.2 忽略規(guī)則要在第一次提交前寫好.gitignore這個(gè)東西最理想的創(chuàng)建時(shí)機(jī)是第一次提交之前。事后再補(bǔ)不是不行但已經(jīng)進(jìn)了歷史的文件不會(huì)因?yàn)榧恿撕雎砸?guī)則就消失你還得額外執(zhí)行一次從索引里移除的操作多繞一圈。PyCharm 新建.gitignore文件時(shí)可以選模板Python 項(xiàng)目選 Python 模板會(huì)帶上一堆常見產(chǎn)物目錄另外還有專門針對(duì) IDE 配置目錄的模板可以疊加使用。關(guān)于.idea目錄到底要不要提交這是團(tuán)隊(duì)協(xié)作里爭(zhēng)論最多的話題之一我的實(shí)踐結(jié)論是拆開看不要一刀切。整個(gè)目錄要么全提交要么全忽略這兩種極端做法都有問題。路徑是否提交理由.idea/workspace.xml不提交記錄個(gè)人窗口布局、打開的文件、運(yùn)行狀態(tài)每人不同.idea/shelf/不提交本地?cái)R置的改動(dòng)純個(gè)人數(shù)據(jù).idea/codeStyles/建議提交統(tǒng)一代碼風(fēng)格避免格式化產(chǎn)生大量無意義 diff.idea/inspectionProfiles/建議提交統(tǒng)一靜態(tài)檢查規(guī)則.idea/dictionaries/建議提交團(tuán)隊(duì)共享拼寫詞典.idea/vcs.xml建議提交版本控制映射關(guān)系.idea/*.iml視情況模塊配置文件Maven/Gradle 項(xiàng)目通常由構(gòu)建工具生成可忽略實(shí)際操作上可以在.gitignore里先寫.idea/*全忽略再用取反規(guī)則把需要共享的子目錄放出來類似.idea/codeStyles前面加感嘆號(hào)。這套寫法新手容易寫錯(cuò)順序記住一條取反規(guī)則必須寫在忽略規(guī)則之后且父目錄被忽略時(shí)子目錄的取反往往失效穩(wěn)妥做法是把父目錄寫成.idea/*帶星號(hào)而不是.idea/不帶星號(hào)。臨時(shí)想忽略某個(gè)已跟蹤文件的改動(dòng)別去改.gitignore用git update-index --skip-worktree這類索引級(jí)手段或者干脆用 IDE 的 Shelve 把改動(dòng)收起來。改忽略規(guī)則影響的是所有人索引標(biāo)記只影響你自己。2.3 第一次提交前必須過的三個(gè)檢查第一次提交的坑最集中因?yàn)檫@時(shí)候項(xiàng)目結(jié)構(gòu)和團(tuán)隊(duì)約定都還沒定型。我在帶人的時(shí)候會(huì)強(qiáng)制要求走完這三步。第一步看一眼完整的變更列表。打開提交工具窗口確認(rèn)列出來的文件都是你想提交的。這里最容易出錯(cuò)的是那些自動(dòng)生成的東西虛擬環(huán)境目錄、編譯產(chǎn)物、本地配置文件、日志文件、數(shù)據(jù)庫(kù)文件。有一次一個(gè)同事把本地調(diào)試用的 SQLite 數(shù)據(jù)庫(kù)文件提交上去了后面每次跑測(cè)試都會(huì)產(chǎn)生變更天天在變更列表里礙眼追了兩周才徹底清理干凈。第二步檢查換行符。這是跨平臺(tái)協(xié)作的第一大坑Windows 上默認(rèn)換行是 CRLFLinux 和 macOS 上是 LF。如果團(tuán)隊(duì)里有人用 Windows 有人用 Mac不加約束的話一個(gè)文件可能因?yàn)閾Q行符不同被整篇標(biāo)記為修改diff 根本沒法看。解決方式有兩條路一是在 Git 配置里設(shè)core.autocrlfWindows 設(shè)true提交時(shí)轉(zhuǎn) LF檢出時(shí)轉(zhuǎn) CRLFmacOS 和 Linux 設(shè)input提交時(shí)轉(zhuǎn) LF檢出時(shí)不變二是更推薦的做法在倉(cāng)庫(kù)根目錄加一個(gè).gitattributes文件顯式聲明各類文件的換行符策略讓規(guī)則跟著倉(cāng)庫(kù)走而不是跟著每個(gè)人的機(jī)器走。PyCharm 的設(shè)置里也有單獨(dú)的換行符選項(xiàng)位置在編輯器代碼風(fēng)格那一欄但它影響的是新建文件歷史文件的換行符還是得靠 Git 層配置來統(tǒng)一。第三步確認(rèn)提交身份。提交信息里的作者名和郵箱來自 Git 全局配置如果這臺(tái)機(jī)器是共用的或者你之前配過別的身份提交記錄上就會(huì)掛錯(cuò)名字。在 IDE 的終端里執(zhí)行g(shù)it config user.name和git config user.email確認(rèn)一下需要改就在倉(cāng)庫(kù)級(jí)別重新設(shè)一遍倉(cāng)庫(kù)級(jí)配置優(yōu)先級(jí)高于全局。3. 提交面板的精細(xì)化操作拆塊提交、改歷史與提交前檢查3.1 部分提交把一次改動(dòng)拆成幾個(gè)干凈的提交有條經(jīng)驗(yàn)值得反復(fù)強(qiáng)調(diào)提交的粒度決定了他日排查問題的成本。一次提交里塞進(jìn)三個(gè)不相關(guān)的改動(dòng)將來要回退其中一個(gè)你就得手工拆。PyCharm 的提交面板在這一點(diǎn)上給的能力比命令行直觀得多。在提交工具窗口里每個(gè)文件左邊有復(fù)選框展開文件后能看到具體的變更塊chunk每個(gè)塊左邊也有復(fù)選框甚至單行都能勾。你勾選哪些提交時(shí)就只包含哪些剩下的留在工作區(qū)。這個(gè)操作背后等價(jià)于git add -p加git commit但省掉了交互式回答的繁瑣。具體流程我一般這么走先寫代碼寫完打開提交面板從上往下過一遍把屬于同一個(gè)邏輯變更的塊勾上寫一條對(duì)應(yīng)的提交信息提交。然后剩下的塊繼續(xù)分組。舉個(gè)常見的場(chǎng)景你在實(shí)現(xiàn)一個(gè)新功能的過程中順手修了一個(gè)拼寫錯(cuò)誤、又調(diào)整了一處配置。這應(yīng)該是三個(gè)提交而不是一個(gè)。功能性改動(dòng)、修正性改動(dòng)、配置類改動(dòng)混在一起提交將來做二分查找定位問題時(shí)那個(gè)大提交就是個(gè)黑盒。有個(gè)細(xì)節(jié)要注意同一行既有功能改動(dòng)又有格式調(diào)整時(shí)行級(jí)勾選做不到拆分只能拆到塊級(jí)。這種時(shí)候我的做法是先格式化再寫功能或者反過來分開兩次提交別硬拆。3.2 提交信息、檢查項(xiàng)與提交并推送提交信息輸入框上方的幾個(gè)復(fù)選框價(jià)值比很多人以為的大。默認(rèn)可能有優(yōu)化導(dǎo)入重排代碼運(yùn)行代碼分析之類的選項(xiàng)勾上之后提交前會(huì)自動(dòng)跑一遍對(duì)應(yīng)動(dòng)作有問題會(huì)在提交對(duì)話框里提示。團(tuán)隊(duì)里如果有統(tǒng)一的代碼規(guī)范把重排代碼和優(yōu)化導(dǎo)入勾上能避免格式化產(chǎn)生的 diff混進(jìn)功能提交里。提交信息本身也值得規(guī)范一下。最基礎(chǔ)的要求是首行簡(jiǎn)明扼要、不超過五六十個(gè)字符需要詳細(xì)說明的話空一行再寫正文。更進(jìn)一步的可以在 Settings 的 Version Control 下的 Commit 配置里開啟提交信息檢查用正則約束格式比如要求以特定前綴開頭。這個(gè)功能對(duì)小團(tuán)隊(duì)特別有用因?yàn)樗谀泓c(diǎn)提交的那一刻就攔住不合規(guī)的信息比事后讓人改歷史容易一萬倍。右下角的提交并推送是個(gè)雙刃劍。它省了一步操作但也讓提交和推送這兩個(gè)語義不同的動(dòng)作耦合在一起。我個(gè)人的習(xí)慣是本地提交隨便做改錯(cuò)了還能撤推送一定要單獨(dú)確認(rèn)因?yàn)橥粕先サ臇|西可能已經(jīng)被別人拉走了。團(tuán)隊(duì)如果開了保護(hù)分支推送到受保護(hù)分支會(huì)直接被拒這時(shí)候還得回頭處理不如一開始就分兩步走。3.3 提交寫錯(cuò)了怎么改Amend、Undo Commit 與交互式變基三種情況三種處理方式。剛提交完發(fā)現(xiàn)漏了一個(gè)文件或者提交信息寫錯(cuò)了這時(shí)候用 Amend。在提交面板勾上要補(bǔ)的文件然后從提交按鈕的下拉菜單里選修改提交它會(huì)把新內(nèi)容并入上一次提交同時(shí)允許你改提交信息。背后執(zhí)行的是git commit --amend。有個(gè)前提必須確認(rèn)上一次提交還沒推送到遠(yuǎn)端。如果已經(jīng)推了改完之后本地和遠(yuǎn)端歷史就不一致再推就得強(qiáng)制覆蓋風(fēng)險(xiǎn)很大。提交本身想整個(gè)撤銷退回工作區(qū)用 Undo Commit??旖萱I是 CtrlAltZWindows/Linux效果等價(jià)于git reset --soft HEAD~1提交沒了改動(dòng)原樣留在工作區(qū)文件狀態(tài)回到已暫存。這個(gè)操作我?guī)缀趺刻於荚谟糜绕涫窃谔峤恢罅⒖贪l(fā)現(xiàn)這不該單獨(dú)成一個(gè)提交的時(shí)候。如果是連續(xù)好幾個(gè)提交都寫亂了想合并、重排、改信息那就得用交互式變基。在 Git 工具窗口的 Log 面板里選中某個(gè)提交右鍵選從這里開始交互式變基彈出的表格里每一行是一個(gè)提交可以拖拽排序、標(biāo)記為 squash合并到上一個(gè)、reword改信息、drop丟棄。這是 PyCharm 里少數(shù)幾個(gè)比命令行更直觀的操作因?yàn)槊钚欣飏ebase -i打開的是一個(gè)文本編輯器順序和操作的對(duì)應(yīng)關(guān)系全靠想象。提示交互式變基會(huì)重寫提交哈希只對(duì)本地未推送的提交使用。已經(jīng)推送到公共分支的提交用 Revert 生成反向提交不要?jiǎng)託v史。4. 分支的創(chuàng)建、切換與合并右下角彈窗能做的和不能做的4.1 分支操作的完整清單與執(zhí)行時(shí)機(jī)右下角的分支名點(diǎn)開是一個(gè)覆蓋了絕大多數(shù)分支操作的面板。新建分支時(shí)它會(huì)問你要從哪個(gè)提交起頭默認(rèn)是當(dāng)前 HEAD也可以手動(dòng)指定某個(gè)歷史提交。這里有個(gè)實(shí)用選項(xiàng)勾選檢出表示創(chuàng)建后立即切過去不勾就只是創(chuàng)建。我傾向于勾上因?yàn)閯?chuàng)建分支的目的通常就是要馬上在上面干活。切換分支時(shí)最大的風(fēng)險(xiǎn)是工作區(qū)有未提交的改動(dòng)。Git 會(huì)嘗試把這些改動(dòng)帶過去如果目標(biāo)分支上相同文件有沖突切換就會(huì)失敗。PyCharm 在這種情況下會(huì)彈提示給你幾個(gè)選擇擱置改動(dòng)Shelve、強(qiáng)制切換Smart Checkout、或者取消。Smart Checkout 的背后邏輯是把本地改動(dòng)先 stash 起來切完再 pop 回去多數(shù)情況下能成功但如果 pop 時(shí)沖突你還得再解決一次。我的做法是切換分支前要么提交要么擱置別指望自動(dòng)搬運(yùn)。重命名和刪除這兩個(gè)操作看著簡(jiǎn)單其實(shí)有講究。重命名只改本地分支名遠(yuǎn)端的舊名字還在需要單獨(dú)推一次刪除再推一次新分支或者在推送時(shí)留意提示。刪除分支時(shí)未合并的分支會(huì)被拒絕刪除IDE 會(huì)提示你該分支還有未合并的提交這時(shí)候要用強(qiáng)制刪除。如果手滑刪了一個(gè)還有用的分支別慌用 Reflog 能找回來這一點(diǎn)在第 6 節(jié)詳細(xì)說。4.2 Merge 還是 Rebase在 IDE 里怎么選、怎么執(zhí)行這個(gè)選擇題的答案取決于分支性質(zhì)不是個(gè)人偏好。我按場(chǎng)景給結(jié)論場(chǎng)景推薦方式原因功能分支同步主分支的最新代碼Rebase保持功能分支提交線干凈不產(chǎn)生一堆合并主分支的噪音提交功能分支合入主分支Merge或壓縮合并保留功能開發(fā)的完整上下文出問題好回退整個(gè)功能多人協(xié)作的公共分支Merge不改寫歷史不影響別人本地臨時(shí)分支整理Rebase把零碎提交壓成有意義的幾個(gè)執(zhí)行 Merge 的入口在分支面板里先切到目標(biāo)分支然后在面板里選中要合進(jìn)來的分支選合并到當(dāng)前分支。如果遇到?jīng)_突IDE 會(huì)彈出沖突解決界面處理完再提交。執(zhí)行 Rebase 的入口在同一個(gè)面板里選中要變基到的分支選將當(dāng)前分支變基到。變基過程中如果每個(gè)提交都有沖突會(huì)一段段停下來讓你處理處理完點(diǎn)繼續(xù)。這個(gè)過程比合并累人所以我一般建議在功能分支上頻繁地做小規(guī)模變基別等積累了三十個(gè)提交再一次性變基那時(shí)候沖突會(huì)一層套一層非常難受。還有個(gè)常被忽略的配置更新項(xiàng)目時(shí)默認(rèn)用合并還是變基。這個(gè)可以在 Settings 的 Version Control 下的 Git 配置里設(shè)對(duì)應(yīng)到快捷鍵 CtrlT 的更新動(dòng)作。團(tuán)隊(duì)里如果約定功能分支用變基、主分支用合并把這個(gè)默認(rèn)值配好能省掉每次手動(dòng)選擇的麻煩。配錯(cuò)的表現(xiàn)是你明明想變基點(diǎn)了更新卻發(fā)現(xiàn)多出一個(gè)合并提交。4.3 分支面板做不到的事不是所有分支操作都有界面入口。比如刪除遠(yuǎn)端分支面板里雖然有入口但操作完遠(yuǎn)端引用不會(huì)立刻刷新需要手動(dòng)執(zhí)行一次拉取或者清理才能看到變化。再比如給分支設(shè)置上游追蹤面板里能做但藏得比較深我通常直接在終端敲git branch --set-upstream-to。另一個(gè)盲區(qū)是多個(gè)工作區(qū)并行。Git 支持git worktree可以同時(shí)檢出多個(gè)分支到不同目錄這在需要一邊跑測(cè)試一邊改代碼時(shí)特別有用。PyCharm 對(duì) worktree 的支持是通過打開不同目錄實(shí)現(xiàn)的不算真正的集成但能用。5. 沖突現(xiàn)場(chǎng)三窗格合并工具的逐行處理與驗(yàn)證5.1 沖突到底在沖突什么先把原理說透后面操作才有依據(jù)。合并兩個(gè)分支時(shí)Git 會(huì)找到它們的共同祖先提交然后比較祖先到當(dāng)前分支改了什么和祖先到目標(biāo)分支改了什么。如果兩邊改的是同一塊區(qū)域的同一批行或者一邊改了一邊刪了Git 就不知道該聽誰的把這塊標(biāo)成沖突兩邊的內(nèi)容都塞進(jìn)文件里用一串尖括號(hào)和等號(hào)分隔開等人工裁決。明白了這個(gè)模型你就知道沖突不是文件不同而是同一位置的改動(dòng)無法自動(dòng)調(diào)和。兩個(gè)分支都改了同一個(gè)文件的不同位置Git 是能自動(dòng)合并的壓根不會(huì)找你。所以沖突文件數(shù)量多往往說明兩個(gè)分支分叉的時(shí)間太長(zhǎng)改動(dòng)面重疊嚴(yán)重。減少?zèng)_突的根本辦法是短分支、勤同步而不是沖突出現(xiàn)后處理得多快。沖突標(biāo)記的樣子是一排左尖括號(hào)標(biāo)記當(dāng)前分支版本一排等號(hào)分隔一排右尖括號(hào)標(biāo)記合進(jìn)來的版本。這三段在 PyCharm 里被渲染成可視化界面不用直接看這些符號(hào)。5.2 三窗格編輯器怎么讀、怎么點(diǎn)雙擊沖突文件或者從沖突文件列表里點(diǎn)進(jìn)去會(huì)打開合并編輯器。界面布局是三塊左邊是本地版本右邊是外部版本中間是合并結(jié)果底部還有一個(gè)共同祖先版本。四個(gè)區(qū)域各有用處缺一不可。底部的祖先版本經(jīng)常被忽略但它才是判斷該保留誰的依據(jù)。比如左右兩邊都改了一行你需要知道原來是什么樣才能判斷哪邊的改動(dòng)是修正、哪邊的改動(dòng)是覆蓋。沒有祖先視圖你只能靠猜。中間的結(jié)果面板上方有三個(gè)按鈕分別對(duì)應(yīng)接受左側(cè)接受右側(cè)接受合并結(jié)果。這里的措辭不同版本略有差異語義是全采用本地、全采用外部、采用你手工編輯后的內(nèi)容。對(duì)于明顯的場(chǎng)景直接點(diǎn)前兩個(gè)就夠了對(duì)于兩邊改動(dòng)都要保留的情況就得在中間手動(dòng)編輯把兩段內(nèi)容拼成想要的樣子。自動(dòng)解決按鈕也值得一用它會(huì)對(duì)所有沒有實(shí)質(zhì)沖突的變更塊批量應(yīng)用合并只留下真正需要判斷的塊。幾十個(gè)沖突文件的時(shí)候先用自動(dòng)解決清掉簡(jiǎn)單的剩下的手工處理效率能差一倍。有些沖突涉及整段方法的刪除和新增嵌套層級(jí)很深肉眼看容易暈。這時(shí)候把編輯器的折疊和差異高亮都用上折疊掉不相關(guān)的代碼塊只留沖突區(qū)域展開視野會(huì)清爽很多。5.3 解決完之后的三道驗(yàn)證沖突處理完不等于事情結(jié)束實(shí)際翻車往往發(fā)生在以為處理完了之后。第一道驗(yàn)證是標(biāo)記已解決。在合并編輯器里點(diǎn)應(yīng)用之后文件會(huì)從沖突列表里消失進(jìn)入待提交狀態(tài)。如果你直接在編輯器里手動(dòng)刪了沖突標(biāo)記、保存關(guān)掉但沒有走標(biāo)記為已解決這一步Git 仍然認(rèn)為這個(gè)文件處于沖突狀態(tài)后續(xù)提交會(huì)報(bào)錯(cuò)提示還有未合并的路徑。這個(gè)坑非常常見尤其是在編輯器里順手改的時(shí)候。第二道驗(yàn)證是全文搜索沖突標(biāo)記。沖突塊處理不干凈、殘留半截標(biāo)記的情況時(shí)有發(fā)生尤其是文件很大的時(shí)候。用全局搜索搜左尖括號(hào)連續(xù)七個(gè)字符正常應(yīng)該零結(jié)果。這一步我每次解決完沖突都會(huì)做比事后測(cè)試報(bào)語法錯(cuò)誤再回頭找快得多。第三道驗(yàn)證是跑一遍構(gòu)建或測(cè)試。有些沖突表現(xiàn)為代碼能編譯但邏輯錯(cuò)了比如兩邊各加了一個(gè)初始化調(diào)用合并后變成調(diào)用兩次。這種問題只有跑起來才能發(fā)現(xiàn)。合并完成后先本地跑一遍測(cè)試再提交這個(gè)順序別顛倒。真要是合并提交推上去之后才發(fā)現(xiàn)問題回退一個(gè)合并提交比回退普通提交麻煩得多。注意合并沖突期間不要執(zhí)行拉取操作。Git 在合并未完成的狀態(tài)下拒絕新的合并提示信息通常很含糊容易讓人誤以為是網(wǎng)絡(luò)問題。6. 追溯與救火Log、Annotate、回退與誤操作兜底6.1 Log 面板不只是看提交記錄Git 工具窗口的 Log 標(biāo)簽頁很多人只用來掃一眼提交列表其實(shí)它是信息密度最高的面板。頂部的過濾框支持按作者、日期、提交信息、路徑組合過濾語法跟命令行參數(shù)類似。想查某個(gè)文件在最近三個(gè)月內(nèi)被誰改過把文件從項(xiàng)目視圖拖進(jìn)去或者直接輸入路徑前綴就行。分支圖那一欄值得展開說。勾選顯示所有分支之后你會(huì)看到彩色的線條交纏在一起每個(gè)圓點(diǎn)是一個(gè)提交線條分叉表示分支創(chuàng)建線條匯合表示合并??炊嗔四芤谎壅J(rèn)出這個(gè)分支是從三個(gè)月前的老提交拉出來的一直沒同步過主分支這類分支合并起來必然痛苦提前預(yù)警。右鍵菜單里的操作才是重點(diǎn)Cherry-Pick 把某個(gè)提交摘到當(dāng)前分支Revert Commit 生成一個(gè)反向提交抵消某次改動(dòng)Reset Current Branch to Here 把當(dāng)前分支指針移到選中的提交還有前面提過的交互式變基。這些操作的入口都在右鍵里用熟了比在命令行拼參數(shù)快。6.2 Annotate定位某行代碼是誰在什么時(shí)候改的編輯器左邊行號(hào)區(qū)域右鍵選使用 Git 追溯注釋有的版本叫 Annotate每一行左邊會(huì)顯示最后一次修改它的提交信息和作者。把鼠標(biāo)懸停在某個(gè)注釋上能看到完整的提交信息、時(shí)間、以及那次提交對(duì)這個(gè)文件的所有改動(dòng)。這個(gè)功能在排查問題時(shí)的價(jià)值極高。舉個(gè)例子某段邏輯突然開始報(bào)錯(cuò)你懷疑是參數(shù)變了用 Annotate 一查發(fā)現(xiàn)這行是上周某個(gè)提交改的點(diǎn)進(jìn)去看那次提交的完整 diff發(fā)現(xiàn)連帶改了別的地方問題一目了然。整個(gè)過程五分鐘比滿倉(cāng)庫(kù)翻代碼快太多。進(jìn)階用法是追溯上一次修改。如果發(fā)現(xiàn)某行的改動(dòng)是在做格式化沒有實(shí)質(zhì)變化可以繼續(xù)往前追溯一直追到真正改了邏輯的那次提交。多次追溯能畫出這個(gè)文件的修改脈絡(luò)對(duì)于理解一段歷史悠久的祖?zhèn)鞔a特別有用。再看一眼狀態(tài)欄和編輯器提示Annotate 視圖是可以關(guān)掉的右鍵選隱藏注釋就回到正常編輯。有些人不小心打開之后不知道怎么關(guān)一直帶著一堆灰色小字寫代碼體驗(yàn)很差。6.3 三種回退方式的區(qū)別與選用這是最容易出事的地方因?yàn)槿齻€(gè)操作的界面看起來差不多后果差別巨大。操作命令等價(jià)對(duì)工作區(qū)的影響對(duì)歷史的影響適用場(chǎng)景撤銷提交Undo Commitgit reset --soft HEAD~1改動(dòng)完整保留抹掉最后一次提交剛提交完發(fā)現(xiàn)問題未推送回退提交Revert Commitgit revert hash自動(dòng)生成反向改動(dòng)新增一個(gè)抵消提交已推送到公共分支或需要留痕重置到此處Resetgit reset --mode hash取決于模式移動(dòng)分支指針本地整理歷史未推送Reset 又分三種模式IDE 在彈窗里會(huì)讓你選軟重置只移指針改動(dòng)留在工作區(qū)混合重置移指針并清空暫存區(qū)改動(dòng)留在工作區(qū)硬重置移指針并丟棄所有改動(dòng)工作區(qū)回到目標(biāo)提交的狀態(tài)。硬重置是唯一一個(gè)會(huì)真正刪掉你代碼的操作做之前務(wù)必確認(rèn)目標(biāo)提交選對(duì)了且當(dāng)前改動(dòng)沒有價(jià)值。什么時(shí)候用哪個(gè)我給個(gè)簡(jiǎn)單判斷只要這個(gè)提交別人可能已經(jīng)拉走了就只能用 Revert絕不能用 Reset。判斷依據(jù)很簡(jiǎn)單看分支是不是公共分支看提交有沒有推送。拿不準(zhǔn)的時(shí)候先建一個(gè)臨時(shí)分支指向當(dāng)前位置再操作出問題還能切回去。6.4 手滑之后的兩層兜底第一層兜底是 Reflog。Git 會(huì)記錄每一次 HEAD 的移動(dòng)即使你硬重置到一個(gè)老提交、或者刪掉了一個(gè)分支那些提交對(duì)象在一段時(shí)間內(nèi)仍然存在只是沒有分支指向它們。在 Git 工具窗口的 Log 面板里分支下拉菜單里可以找到查看 Reflog 的入口也可以在終端執(zhí)行g(shù)it reflog。找到誤操作之前的那條記錄右鍵重置到那個(gè)位置或者新建一個(gè)分支指向它代碼就回來了。第二層兜底是 IDE 的本地歷史。這個(gè)功能跟 Git 完全無關(guān)是編輯器自己定期給文件拍快照記錄在項(xiàng)目配置目錄里。哪怕文件從來沒提交過、哪怕 Git 倉(cāng)庫(kù)被整個(gè)刪了本地歷史依然能找回某天某個(gè)時(shí)刻的文件內(nèi)容。入口在編輯器或項(xiàng)目視圖的右鍵菜單里選本地歷史下的顯示歷史。我遇到過最離譜的一次事故是有人把整個(gè)源碼目錄清空了Git 那邊也沒提交過最后靠本地歷史恢復(fù)的。這個(gè)功能建議所有人都知道它在哪并且別把項(xiàng)目配置目錄加進(jìn)忽略規(guī)則之外的清理腳本里。最后說個(gè)小技巧。團(tuán)隊(duì)協(xié)作里提交信息和分支命名其實(shí)是低成本的溝通工具。分支名寫成fix/訂單列表分頁錯(cuò)亂和寫成dev2三個(gè)月后你自己都想不起來 dev2 是干什么的。我現(xiàn)在的習(xí)慣是分支名帶上類型前綴和一句短語提交信息首行寫清楚做了什么正文寫為什么這么做。這套習(xí)慣堅(jiān)持下來回頭看 Log 面板的時(shí)候它就不只是一堆哈希而是一份能讀的變更說明書。我在實(shí)際使用中最大的體會(huì)是PyCharm 的版本控制功能真正的價(jià)值不在于省掉幾個(gè)命令而在于把狀態(tài)可視化了。哪些文件改了、哪些提交沒推、哪些沖突沒解、當(dāng)前在哪個(gè)分支這些信息在命令行里需要反復(fù)敲命令確認(rèn)在界面里一眼就能看到。把這份可見性用好比記住多少個(gè)快捷鍵重要得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九香蕉网| 玖玖资源中文字幕制服丝袜| 欧美丝袜91| 又大又长又粗又爽又黄| 老熟女熟妇| 国产精品操| 天天综合~91入口| 易易A毛视频| 黄片在线免费在线观看| 97网色| 97在线视频免费| 五月婷婷六月天| 全国男人天堂网| 操逼网站地址| 中文字幕在线免费观看 | 中文字幕一区二区三区四五区| 欧美天天干| 亚洲黄日韩无码专区| 女人天堂av在线播放| 97午夜剧场日韩| 台湾佬大香蕉| 91欧美高清| 香蕉国产精品麻豆亚洲欧美日韩 | 97人妻色| 桃花色综合影院| 亚洲欧洲久久天堂| 97最新在线播放视频| 九九九九精品在线| 人妻啊啊人妻啊| 亚洲天天操| 久久超碰、| 天堂а√在线最新版在线| 天天综合网入口~91| 免费簧片在线观看| 久久这里只有精品9| 中文伊人大香蕉视频| 襙一襙| 久久久久久九九九九-美女久久久久久久-成人AV| 国产强奸乱伦欧美| 欧洲精品久久| 狠狠干狠狠干| 国产精品久久久久无码Av网曝门 | 人澡逼| 99久久网站| 色97干| 69精品人人人人| 欧美一区二区三区入口| 美女久久久久久久久久久| 手机av天堂久久久久| 欧美日韩国产一区二区小黄片大全| 欧美色图天堂网m| 国产人妖视频一区在线观看| 四虎影视精品| 1区2区3区中文字幕日韩| 精品人妻一区二区视频| 99无码| 夜夜 中文视频rt| 91啪啪| 91综合色| 97一区二区三区视频| 超碰人人超在线观看| 色亚洲欧美| 欧美黄色图片| 99亚洲精品| 亚洲视频1区| 加勒比久久av| 丰满少妇一区二区三区专区| 岛国成人av在线播放网址| 一级一性爱免费视频| 91九九九吃| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 美女毛片999| 啪啪一区| 亚洲导航深夜福利| a一区二区三区乱码在线| 91欧| 97超碰这里只有精品| 看日韩美女二区三区免费操逼视频 | 日人妻视频91| 白丝被操91| 亚洲中文字幕av| 99国产精品久久久久久久成人热| 可以免费观看的av| 国产精品久久久久久久久AV大片| 国产高清MV操逼视频| 无码78| 天天操天天日青青草超碰av| 欧美黄色片在线播放| av日韩国产一区二区| 狠狠中文字幕| 男人的天堂久久狠| 久久久久久九九九九| av在线不卡一区二区三区| 日本大片日本一区二区免费高清| 国产小炒后入式| 欧日韩一二三f区| 久久这里只精品免费福利| 国产呦精品一区二区三区下载| 在线天堂999| 亚洲天堂人人妻| 午夜精品久久久| 午夜免费福利视频一区| 走光一区92下载| 国产中文字幕在线点播| 天天日日本| 97资源久久| 日本色色色视频| 美女AV一区二区| 97香蕉网| 久久有碼| 亚洲第一狼人丝袜美女另类| 330dv亚洲成年视频网| 中国AAAAAA黄色片| 91原创在线观看| 国产精品欧美在线观看| 男人天堂2019亚洲| 91人人操| 中文字幕版| 老熟女网站| 丁香六月激情| 日本爽爽爽爽爽爽免费视频| 天天综和| 久操操AV电影| 啊啊啊啊啊啊啊啊啊啊在线观看| 可以免费看黄片的视频| 97免费视频网| 99久久久无码精品国产人| 97国伦国色| 在线有码中文字幕| 久久↗↗| 首页亚洲国产高跟丝袜诱惑视频| 黄片免费日韩| 蜜桃狠狠色伊人亚洲综合| www.99中文字幕| 亚洲色香| 午夜精品视频777| 蜜臀AV一区二区三区| 九九Av| 欧美操逼录像国产黄色国产| 超碰在线人妻不卡| 日韩国产欧美伦理在线| 欧美同性恋 的搜索结果 - 91n| 色青青久久影视| 国产午夜精品一区二区三区牛牛| 亚洲情色婷婷五月天| 啊啊啊草死我| 少妇专区一二三四五| 日本操大逼| 婷婷激情丁香| 久久久久久久久久久久黄色| 日本熟女中文| 无码国产Av| 色偷偷综合91久久噜噜| 欧美图片色综合| 在线综合 亚洲 欧美中文字幕| 伊人aaa| 欧亚在线视频| 美女裸体无遮挡永久免费观看网站| 丝袜天堂| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 午夜超爽| 亚洲欧美骚| 精品一区二区三区最新| 久久久五月天| gogogo免费高清看中国国语| 免费视频一二三区| 麻豆天天躁天天揉揉AV| 九九精品热| 亚洲国产av中文字幕久久| 性高潮久久久| 久久成人精品| 情色五月天久久久| 夜夜狼人妻| 色色五月天婷婷| 911av网站免费观看| 天天做天天爱| 日韩无码人妻中字久久三区四区| 97精品视频网站| 色99视频| 日本福利二区视频| 精品久久久久久中文| 国产精品午夜AV完会免费| 色妇91| 久久综合中文国产| 日韩精品视频在线观看一卡二卡| 久久专区| 国产精品乱码久久久久久久久久久久| 美女黄频a美女大全免费皮| 亚洲国产成人7777| 一区 欧美 日韩 麻豆| 国产日产精品久久快鸭的功能介绍| 性猛交| 大逼色网站| 熟女91网| 国产欧美日产一区二区三区 - 国产欧美日 | 噜噜瑟| 国产极品999| 五月婷婷色| 欧美性爱另类综合| 国产成人综合网| 日韩欧美经典在线观看| 亚洲蜜桃V妇女| 美国一区二区三区视频| 交换娇妻呻吟声不停中文字幕| 中日韩免费看男女操逼大全| 超碰在线一区| 日本操逼视频在线| 爱妃国产亚洲视频中文字幕| 亚洲无码精品AV久久久| 凹凸视频在线一区二区| 久久丁香久草综合网| 国产福利精品98视频| 亚洲精品97久久| 丝袜美腿丝袜| 夜色97| 中文字幕女同在线| 九九九九九九亚洲| 超碰97玖玖爱| 久久久久网站-538在线视频-欧美永久乱码 | 欧美日韩妖精91com| 91网站18+| 色五月激情AV在线| 欧美亚洲在线| 欧美牲| 欧美人与动性人交a| 亚洲色交| 男人天堂导航| 老熟女91| 免费av在线播放二区| 免费?级毛片无码?∨蜜芽试看| 欧美福利视频啊啊啊啊| 国产亚洲日韩在线三区黑人| 国产精品视频白浆免费| 九九AV| 精品少妇后入一区二区三区四区人妻巨乳| 天天透伊人| 久久9亚洲| 精品人妻视频一区二区三区蜜桃视频| 亚洲AV色图一区| 亚洲第二页| 熟妇人妻丰满久久久久久久无码| 99精品综合久久久久五月天| 欧美成人色| 91精品女厕偷拍视频| 91人妻精华帖| 国产精品自产拍在线观看社区| 亚洲一区二区久久久久| 色色色热| 欧美韩日精品资源| 欧美亚洲手机在线| 久操免费在线| 久久久久久AⅤ无码免费肉站| 婷婷在线视频| 人妻天天爽夜夜爽爽| 精品无码一区二区| 九草九九九| 久久久久久九九九| 激情综合二| 偷拍伦理视频| 国产精品大屁股999| 操一操摸一摸| 强免费黄色网址| 欧美熟妇乱码在线一区| 欧美亚洲一级在线观看| 少妇人妻好深太紧了vr91| 免费一级黄色录像影片| 艳美熟妇先锋一二三区| 午夜操一视频一区| 亚洲精品一二区| 久久色人体 | 极品少妇久久久久| 免费又黄又裸乳的视频| 97人妻色| 超碰碰97资源站| 99国产在线 精品 视频| 日韩av熟女一区二区三区成人| 欧美专区日本专区| 不卡人妻少妇精品毛片一区23区视频| 亚洲性高潮| oumeisetu综合| 激情图片亚洲色图| 久久中出| 欧美性猛交美女自慰91| 欧美色蜜桃97| 精品国产肉丝袜在线拍国语| 不卡一区视频| 中文字幕中文字幕一区二区| 青青操少妇| 午夜精品久久久久久久久久久久久| h4610国产人妻| 国产最火爆久久国产网站网站| 欧美强奸乱| 牛牛久久国产精品视频一二三| 91欧洲国产成人久久精品网站| aaaa少妇高潮大片| 亚洲综合另类欧美久久久| 综合色欧美| 亚洲 欧美 手机在线观看| 97国产色图| 91被操| 冬京热男人的天堂| 久久超碰日韩精品| 麻豆黄色五月天| 91熟女在线| 五月丁香影院| 久久久久久久久9| 国语对白在线播放视频| 大逼色网站| 亚洲福利中文字幕在线| 成人在线视频网| 欧美少妇性乱| 一区二区高清视频| 国产精品久久久久久夜夜夜| 8x福利精品第一福利视频导航| 日夜久久久九九九久| 奇米四色网| 麻豆成人av| 午夜黄色免费在线观看| www国产精品| caopeng97| 91香蕉视频在线观看免费| 久久久久网站-538在线视频-欧美永久乱码 | 亚洲日本大香蕉1| 国产 日韩 另类 视频一区爱| 性欧美91| 青春草A| 思思性爱| 性爱网站一区二区| 青青青草原| 国产乱码久久| 在线A日本| 91熟女丨91老女人| 超碰综合97在线| 青青草AV色| 欧美日韩性爱无码| 亚洲清纯综合| 9久久9综合| 91丨豆花丨熟女| 超碰在97| 伊人天堂在线| 黄色大香焦1级‘′‘| 欧美精品亚洲精品日韩传电影| 中文字幕精品区先锋资源| 91 天天综合| 亚洲综合码| 日本操逼二区| 国产馆| 色一射色一射| 操逼逼福利视频| 91欧美情色| 9超碰免费| 亚洲AV小说| 强奸乱伦 亚洲一区| 亚洲日本大香蕉1| 青青草十区九区爱夜| 亚洲国产激情国产av| 永久免费av无码网站国产app| yirendaxiangjiashipin| 国产操偷| 中文字幕精品探花视频 | 色狠狠综合噜一二三区| 2024人人操人人摸| 九月激情婷婷| 超硑97精品| 三男一女不戴套的A片| 综合网~91综合网| 国产老熟女| 人人爱操| 激情五月天婷婷| 欧美日韩性爱操大逼| 奇米狠999| 久久国产AⅤ| 亚洲自拍97| 蜜桃臀av一区二区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 久久久国产护士丝袜美腿一| 精品九九九九九九九| 天堂日本亚洲欧美| 天堂日本亚洲欧美| 日本天堂网| 青青草原狼av| 精品v1区| 东京成人一区| 一本大道综合伊人精品热热| 亚洲无限观看| 鸥美极品| 亚洲国产精品久久久久婷婷老年| 一区二区亚州激情久婷婷欧美| 日韩综合97P| 99re6国产精品99re| 欧美性爱网97| 国产精品午夜精品| 日韩本不卡视频在线观看| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲阿v天堂在线| 久久久久99精品成人片蜜臀| 精品一区二区久久| 久污| 道久久五香丁月婷婷激情综合| 欧美内射少妇| 9久久9综合| 欧美亚洲综合色| 成人蜜乳小视频网站| 91成人无码| 日本免费一级AAA大片器| 中欧人妻丝袜中文字幕| 69av一区二区三区| 操逼操逼逼操操逼91| 立川理惠无码一区二区| 欧美|91色综合| 嗯嗯啊啊用力视频免费| 国产视频大全| 欧美综合色,www| 欧美乱伦专区| 久久香蕉综合一本到3atv| 激情av| 日韩一999精品| 欧美天堂超碰97| 伊人久大| 国产女同视频在线播放| 91九色网| 一区二区国产视频在线观看| 欧美精品庄| 天天躁日日躁AAAAXXXX国产 | 啊嗯好大视频在线观看| 97超碰人操| 好吊色一区| 精品一久久久| 久久久性少妇| 国产99热| 操操逼视频| 亚洲免费成人精品电影| 婷婷五月成人| 韩国轻伦国内自拍一区| 国模久久在线| 日韩高清黄片| 蜜桃成人1区2区3区| 制服诱惑亚洲一区二区三区在线观看| 国产91 丝袜在线播放00-百度| 一区二区三区黄色片a| 六月丁香啪啪| 情色五月天就去干| 老司机天天操| 97人人中文网| 亚洲精品97| 婷婷中文字幕| 久久久久幕乱码| 久久久精品中文字幕爱豆| 国产精品交换一区二区| 日韩亚洲97| 成人小说视频在线精品欧美| 欧美午夜精品久久久久久超碰| 丰满人妻一区| 色狠狠 - 百度| 亚洲熟妇乱女区二区三区| 岛国天天午夜影院传媒网| 久久久久九九九九| 亚洲自拍天堂| 9久久美女首页| 3PAV乱伦视频| 国产91美女高潮| 欧美图片校园春色| 九九性爱网| 9 9无尺码天堂网| 亚洲国产欧美另类自拍| 久久色一区二区| 9国产超碰| 67194无码不卡| 亚洲精品一区二区日本| 97视频观看| 97超碰欧美| 天天干2区3区| 国产一区二区三区免费视频在性观看| 美女久久久久久久| 老熟女乱伦一区| 春色校园综合网| 亚洲蜜乳av| 桃花色涩综合影院| 老司机免费视频在线91| 日韩免费a级毛片无码a∨| 久久xx| 校园春色宗合网| 爱干爱射网啊啊啊| 精品乱码在线观看| 91欧洲入口| 亚洲男人久久综合天堂| 综合色图,成人综合网| 午夜无码熟妇丰满人妻| 国产午夜福利专区综合| 丁香六月婷婷久久综合| 日韩欧美视频青青| 97超碰色屌| 蜜臀99精品国产高清在线观看| 18禁在线视频| 高凊专区人人操| 东京热av影院| 在线v中文字幕一区二区三区 | 天综合网欧美| 日韩有码免费视频| 一级岛国大片| 91青青在线视频| 超碰在线人人射| 国产色精品午夜大片| 蜜臀AV成人精品蜜臀| 草草电影院| 久久久草成人网站久久久草成人久久久草久久久 | 久久久久亚洲熟妇熟女| 亚欧Av| 黄色在线网站| 日韩淫色网| 国产精品女同| 精品性爱一二三区| 翔田千里AV无码秘 三区| 日韩精品9999| 日韩免费人妻色情网站| 麻花传媒免费网站在线观看| 九t超碰| 亚洲综合九| 99久热| 在线观看无码三级少妇| 清纯唯美亚洲另类| 男人网站婷婷| 男人的天堂在线2| 深夜激情无码| 看大黄色大片原件| 亚洲av影音先锋| 大屁股熟女一区二区三区| 国产AV久久野战精品| 日本中文字幕熟妇| 久久久精品成人国产| 蜜桃午夜视频一区二区| 久久激情视频| av网站免费看| 成人五月天色网| 大香网站| 久久三区四区| 超碰97欧美在线 | 日本Suv精品一区二区| 五月天色图影视| 久久国产成人精品国产成人亚洲 | 嗯阿好爽好紧| 日韩欧美成人综合在线| 国产精品大屁股999| 97精品综合| 人人搞人人插人人操| 久久內射| 亚洲各类熟们中文字幕| 丰满人妻-区二区三区| 极品粉嫩一区二区| 日本精品无码三级网站| 老熟乱一区二区三区四区| 私色综合网| 看免费的黄片| 性欧美| 日韩99神马视频播放片在线播放| 人人玩人人添人人澡免费| 97精品97久久| 女人的久久久| 蜜臀久久在线视频| 青青青草原| 射丝袜高跟鞋99| 亚洲欧洲无码一区夜| 99精品无码| 69人妻精品一区二区绯色| 午夜免费福利视频一区| 99性爱| 美女尤物福利视频| 一道本东京热加勒比一区二区三区 | 熟妇人妻一区二区三区| 天天日日日射| 日本五十路在线| 国产一区二区久久| 97视频在线免费| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 中日992视频| 97日亚洲欧美| 日韩成人高清一区二区| 色五天伊人| 福利在线黄片| 色色无码| 天天日天天舔东京热| 精品无码久久久久| 欧美色97| 日本中文熟女视频| 伊人久久大香线蕉无码| 色综合色欲色综合色综合色综合| 97五月天| 天堂在线一区二区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 亚洲 欧美 小说| 天堂精品| 水多多映视AV| 日韩性爱电影一区| 啊啊啊好湿国产一二| 欧美激情色婷婷花野真衣一区二区| www.男人天堂| 天天操夜夜操| 思思热影视| 青青草密桃在线播放| 男人天堂久久日韩| 欧美综合色| 国产呦精品系列在线观看| 亚洲国产婷婷在线播放| 伊人AAA| 欧美日韩人妻婷婷一区| 久久久久国产精品久久久| 在线a v| 天天肏美女| 中精品一区二区三区| 国产97综合| 欧美图片色五月天| 精品国产一区二区三区在线播出| 色综合色综合网| 国产成自自拍在线观看| 欧美色图 色综合图| 美中日韩无码| 久久久18禁| 九九九网站| 破苞ⅩXXX性无码动漫无码| 白丝少妇一区二区| 激情小说在线视频| 120分钟婬片免费看| 60秒免费小视频| 久96热在线观看视频| 国产成人+综合亚洲+天堂| 97爱b| 在线播放成人高清免费视频 | 超碰九九| 中文字幕狠狠玩| 啊啊啊不要啊啊受不了了视频在线| 色妇综合网| 你懂得91| 国产精品97超碰| 国产女人操逼视频| 91丝袜美腿片| 韩国一级AAA| 五十路熟女工口 | 传媒在线观看一区二区三区| 国产 v乱码一区二| 欧美一品道| 国产自产自拍| 色拍偷亚洲| 日韩国产在线观看av| 熟女一区二区三区| 北约熟女超碰| 色男人色天堂东京热| 久久久久久久九九九九九九| 磁力99AV| 天天做日日做| 亚洲性猛| 性做久久久久久免费观看软件| 久久人妻少妇| 国产一区二区精品久久99| 性性久久| 亚洲制服欧美另类内射| 日本不卡免费二区| 免费AV播放| 久久 精品| 狠狠操狠狠爱| 色臀aV| 欧美疯狂做爰xxxx| 在线视频资源| 亚洲欧洲小说图片视频 | 日本成a人v网站在线观看| 欧洲中文字幕| 草草影院最新网址| 九九九九免费视频| 99自拍视频| 欧美一级A一级a爱片久久| 97人人中文网| 黄色性爱网网| 久久久一区二区三区四区五区| 亚洲天堂人妻一区二区| 一区操逼| 亚洲女优有码无码高清| 免费看毛片操穴| 内射夫妻三片| 极品一区二区三区免费| 伊人天堂在线| 日韩亚洲国产视频| 亚洲少妇视频| 99国产精品免费| 网页导航五月天免费一二三区| 国产精品久久久亚洲第一牛牛_在线观看| 亚洲综合在线视频| 午夜超爽| 久久9精品| 久久夜嗨| 一区二区偷拍拍视频| 色在线综合| 在线电影亚洲色图| 第四色色综合91| 再深点灬舒服灬太大了好硬好爽| 国产精品不卡高清在线观看| 久污| 大香蕉免| 97色碰| 国产一区在线观看无码AV| 亚洲一区二区中文字幕| 人妻在线大香蕉| 性吧在线视频| 中文字幕亚韩| AV麻豆免费一区| 大茄子熟女AV导航| 夜草欧美| http://qxhbdz.com| 福利色色| xxxx网站亚洲精品| 97啪啪| 五月开心久久AV官网| 男人的天堂视频精品乱在线| 超碰成人国产| 操一区| 男人兔费天堂| 丁香六月婷婷综合| 国产69精品久久久久99尤物| 91一区二区三区蜜桃| 99AV| 91精品国| 玖玖超碰熟| 色九九九九| 国产白丝精品在线观看| 亚洲色人妻综合| 蜜桃视频成a人v在线| 91男人综合| 麻豆人妻偷人精品无码视频| 欧美在线啊啊啊| 日韩亚洲美州欧洲综三区一品在线| 黄色av一区二区在线| 亚洲欧美中文一区二区三| 四虎国产精品永久在线囯在线| 东北熟女91| 五月天婷婷社区| 亚洲双插| 精品美女少妇一区二区| 久久久免费高清中文视频| 四虎免费视频| 亚洲综人| 欧美草草高清日韩视频| 97超级久久| 精品人妻一区二区三区免费视频| 日韩欧美麻豆大片| 这里只有精品97| 亚欧精品久久久久久久久久久| 嗯啊抽插大香蕉网页| 热99这里有精品综合久久 | 韩日无码在线观看| 欧美精品1区2区3区| 澳门特级毛片免费观看| 色五月综合| 婷婷五月色| 奸色色 男人天堂 天天射| 久久久999网站| 久久97资源 网| 福利天堂| 一区二区三区男人的天堂| 天天碰久久入| 激情欧美97| 波多野结衣之双飞调教在线播放 | www.五月天| 天天射天天操天天干天天吃2018| 无码视频一区二区| 91熟女综合| 激情久久日韩精品中文字幕麻豆| 999久久芭蕾| 日韩在线电影| 亚洲乱色熟女一区| 伊人黄色视频免费观看| 97在线视频观看| 蜜桃臀 后入 一区 二区 三区 在线| 亚洲乱色视频一区、二区在线| 九九九九九九九九九五码| 伊人久久亚洲中文字幕不卡| 亚洲欧美激情小说| 男人久久天堂| 国模不卡| 日韩AV一区二区三区四四| 中文字幕亚洲欧美在线不卡| 亚洲色图综合网| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚州一区二区| xxxx网站亚洲精品| 九九亚洲| 97在线观看免费视频l| 9 1果冻精品视频| 91被操| 亚洲一区二区性爱电影| 日本免费不卡二区| 午夜久久久| 欧美成人免费在线观看| 国产精品美女| 久久久久七视频| 淫妻综合网| 一级啊性爱在线视频| 黄片视频观看| 男人的天堂视频精品乱在线| 国产精品不卡一区二区三区| 久久久久久久一级黄色打同平台| 26uuu国产日韩综合在线观看| 97精品网| 久久婷婷一区| 久久久久国产| 日本午夜福利视频| 久久99热这里只频精品6学生| 一区二区不卡| 国产精品午夜精品| 午夜乱轮操逼视频免费看| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美手机在线综合| 黄色人人| 不卡码视频| 啊啊啊久久| 凹凸视频特色日本特黄| 美女丝袜激情小说| 丁香六月激情| 青青草视频导航官网| 久久激情婷婷| 激情五月天网站| 国内外激情在线| 操B在线观看| 噜噜噜久久亚洲精品色情| 精品无码一区二区三区色欲| 夜夜爽爽爽| 欧美精品庄| 激情小说五月天| 超碰97日韩| 国产一区二区欧美日本| 亚洲日韩XXX| 一类无码操逼视频| oumeizonghese,www| 内射夫妻三片| 少妇同性| 蜜臀AV秘一区翔田千里| 欧美爆操91| 欧美精品二区视频在线| 天天射网| 色欲久久久久综合网| 欧美日韩夜夜| 天天综合97| 欧美另类色| 日韩精品字幕| 久久久久久久久久黄色网 | 岛国AV一区二区电影| 尤物网站91| 日本不卡码黄色| 97无码视频在线播放| 免费看污网站| 成人av在线播放| 都市激情人妻一区二区青青操视频| 国产精品人人爽人人做可爱福利| 青春草A| 可以在线观看的黄色网址| 亚洲一二三| 被体育老师抱着c到高潮| 后入式999| 九色视频91| 日本一区不卡| 天堂在线一区二区| 久久久久成人亚洲国产| 欧美色图99| 日韩在线视频1234| 人人操我人人干| 欧美日韩人妻少妇 一区二区三区| 亚洲黄网在哪免费看| 大香蕉视频啪啪啪啪| 天美国产三级传媒| 国产黄色影片在线观看| 粉嫩久久久极品| 五月天综合| 成年人网站在线免费观看| 日本男人插女人的逼黄色| 欧美成人一区二区三区在线播放| 中文字幕人妻丝袜乱一区三区| 大香蕉碰| www.黄色在线| 九九久久久| 情侣操 逼视频99| 亚洲人妻av| 亚洲成人精品在线一区| 99蜜月精品久久| 3571色综合一区二区二区| 一区二区三区亚洲| 91美女精品| 日本一天色道久久久精品视频| 亚洲aV性爱| 无码久久亚洲高清,| 午夜九九| 丝袜天堂| 看日韩美女二区三区免费操逼视频| 午夜福利一区二区影院| 国产欧美日产一区二区三区 - 国产欧美日| 五月天婷婷综合| 国产欧美精选激情视频| 丰满少妇一区二区三区免费看| 亚洲 欧美 小说| 日本久久网| 亚洲高清国产理伦片| 韩国三级色呦呦| 日韩熟女视频二区| 久久9精品视频| 欧美一区二区亚洲天堂| 日韩欧美成人午夜福利| 中文字幕乱亚洲美女精品一区| www. 男人天堂成人在线| 开心六月色| 人妻熟女午夜精品在线| 丝袜美腿制服人妻二区中文字幕| 加勒比综合| 五月天久久人妻| 国产久久日| 久草婷婷| 美女露胸露奶头| 五月婷在线| 精品性爱一区二区| 欧美日韩免费性爱| 性无码专区2020| 日本一二区不卡| 亚洲无码一区成人免费午夜| 国产丸一视频| 久久激情视频| 日韩激情无码影院| 久久久久久九九九| 91国产丝袜白虎| 亚洲 中文 欧美 日韩 在线| 中文久久96| 999 久久久| 天天插夜夜爽| 一本一首道人妻少妇免费久久| 国产在线不卡导航| 青青国产精品在线| 人妻激情偷乱视频一区二区三区 | www.99在线| 91干熟女| 看一级黄色视频| 热九九精品| 柠檬AV导航| 99久久九九| 日韩人妻少妇 一区二区三区| 综合自拍| 日韩在线观看中文字幕视频| 无码少妇精品一区二区60岁老人| 日韩一级片在线看| 免费观看啪视频| 激情六月婷婷| 97久精品| 超硑97精品| 欧美情色贴图| 色网1| 大香蕉在线SuP| 大香蕉一人| 日本天天干天天操一区| 夜夜骑夜夜操| 久久久一区二区三区三州| 亚洲 日本 国产 综合| 天天操天天干一区二区 | 亚洲AV永久无码一区仙野| 久操热线| 97资源超碰| 国产精品suv一区| 99国产精品自在自在| 九九九国产精品| 老妇女91| 亚洲天天做日日做天天谢日日| 亚洲天堂中文字| 9999免费精彩视频| 国产超碰国产97| 超碰天天操你比| 欧亚日本情色| 综合网欧美| 噜噜噜在线视频| 120分钟婬片免费看| 国产suv精品一区二区四区999| 国产午夜视频| 欧美色91| 国产精品久久aV| 免费在线黄片视频| 清柠毛片| 青娱乐手机日韩在线视频| 一卡二卡在线播放| 成人午夜高潮av猛片| 最近2019中文字幕国语免费版| 99精品无码| 神马久久久久久久久久久久| 亚洲不卡一| 永久电影三级在线观看| 成人5码视频| 人妻激情另类| 亚洲自拍欧美色综合| 搡老女人老91二区| 午夜偷拍久久熟女| 熟妇女人妻呻吟久久AV| 激情四射婷婷六月天| 亚洲天堂精品日韩电影| 另类小色呦| 内射黑人| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 日韩无码嘿咻黑热久| 鸥美极品| 美日韩男女操屄视频| 色婷婷亚洲婷婷| 嗯嗯啊啊好大好爽| 1769成人国产精品视频| av资源在线观看少妇| 91成人在线| 欧美在线啊啊| 国产成人精品亚洲日本| 粉嫩AV输入| 国产精品不卡高清在线观看| 婷婷操逼| 九九综合网| 视频一区二区三区精品| 激情五月天婷婷| 91热色| 精品人体无圣光凹凸| 欧美最婬乱婬爆婬性视频| 国产精品一区二区三区在线| 欧美日韩一区二区三区四区蜜桃| 久久久久久大| 九九久久久| 丁香五月性爱| 一本色道久久综合亚洲二区三区| 黄色片,com| 诱惑人妻欧美一区在线播放| 亚洲综合首页| 先锋精品av色鲁| 插插综合网天天影视网| 久久无码电影| 亚州色阁| 亚洲暴力强奸AV| 99热这里只有是精品10| 亚洲欧洲中文日韩女优乱码| 99热亚洲天堂| 久久久久久性爱免费视频| 五月天成人综合| 快灬快灬 一下爽蜜桃在线观看| 亚洲欧美成人在线| 中日韩久久久免费看| 国产女性无套 免费观看| 欧美亚洲综合999| 伊人五月天激情| 少妇99| 亚欧Av| 欧美,日韩,中文,另类| 欧亚在线视频| julia国产在线| 夂久色| 91在线免费精品视频| 精品91摸| 国产美女口爆吞精视频| 国产精品午夜成人福利| 国内偷自视频区视频综合| 婷婷15月天青娱乐| 国产美女mm131爽爽爽爽| 人妻熟女一区二区| 爱我干综合| 超碰美国| 免费看污网站| 精品人体无圣光凹凸| 熟女91网| 99色| 美国日韩黄片| 夜夜福利| 5月婷婷6月六月丁香| 97欧美日韩综合| 麻豆AV一区二区| 亚洲国产ⅴ高清在线观看| 精品人妻视频一区二区在线播放| 97婷婷色| 神马久久久久| 操死我了嗯嗯嗯| 国产热RE99久久6国产精品首 | 亚洲第一无码播放立川理惠| 大香蕉懂9| 中文字幕日产av人| 色哟哟511老熟女| 欧美综合色,www| 国产传媒日本欧美专区| 国产无马视频| 精品人妻一区二区三区鲁大师| 欧美日韩人人精品| 把腿张开老子CAO烂你| 天天干电影| 亚洲精品一区二区免费在线观看| 91GD.COM| 影音先锋每日最新资源在线观看 | 草久久久| 亚洲夜夜欢无码一区二区| 国产精品com| 情色五月天就去干| 日韩情色视频| 91丨熟女丨丰满熟女| 国产白丝精品在线观看| 亚洲性猛| 久久久久久大| 女同性恋久久| 日韩欧美大片免费高清啪啪| 国产日产欧产美韩系列麻豆免费| 淫淫总合网| 国产女性无套 免费观看| 日产操逼| 在线播放欧洲免费av| 亚洲情色图片区| 国产 日韩 欧美 人妻 熟女 中文 69人妻精品一区二区绯色 | 影音先锋乱伦资源| 美女性91| 国产精品乱码久久久久久久| 成人影 天天操 亚洲| 伊人久久大香大香线蕉中文| 亚洲一区中文精品| 欧美综合色图网| 中国黄色特级精品一区二区三区片| 性欧美另类高清| 高清无码国产亚洲| www.黄色在线| 欧美日韩国产一区二区小黄片大全| 国产精品另类| 嗯~啊~快点 死我视频免费看网站| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 熟女人妇一区二区三区| 欧美性爱综合,免费| 国产路线专区| 天天日天天干天天摸天天操| 秋霞鲁丝午夜无码一区二区三| 亚洲不卡不卡中文字幕不卡 | 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 97天天摸天天碰| 亚洲黄色影视| 去干网最新版| 亚洲精品一区二区三区在线播放| 天天插夜夜操| 亚洲人妻中文在线视频| 国产精品 视频| 摸奶性爱视频网站在线免费播放| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 中文字幕在线观| 人妻精品一区二区| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 天天天天天超碰| 大香蕉国产中文自拍| 一区二区首页| 国产精品久久久蜜臀| 久热久一区二区三区| 欧美日韩国产中文超碰| 欧美成人9797| 俺去久久| 99啪啪视频| 操b网站亚洲无码| 中文字幕在线观看网页| 亚洲AV资源| 欧美少妇第一页| 久久久久ab| 超碰久在线天天做| 国产后入清纯| 啊啊啊啊啊舒服| 2020天天色综合| 青草一区二区| 蜜桃av色偷偷av老熟女| 中文字幕丰满人妻日本| 亚洲一区二区三区在线激情| 香蕉国产精品麻豆亚洲欧美日韩|