欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:Git——分支詳解

柚子快報(bào)激活碼778899分享:Git——分支詳解

http://yzkb.51969.com/

目錄

Git分支1、開始使用分支1.1、新增分支1.2、更改分支名稱1.3、刪除分支1.4、切換分支1.5、切換分支時(shí)1.6、要切換到哪個(gè)分支,首先要有那個(gè)分支

2、分支原理2.1、單個(gè)分支2.2、多個(gè)分支2.3、切換分支時(shí)的邏輯1、更新暫存區(qū)和工作目錄2、變更HEAD的位置

2.4、如果將文件改動(dòng)了一半就切換分支

3、合并分支3.1、合并示例3.2、A合并B與B合并A區(qū)別3.3、合并過的分支要保留嗎

4、不小心把還沒合并的分支刪除了,救得回來嗎4.1、恢復(fù)已被刪除的還沒合并過的分支4.2、還沒有把剛剛刪除的那個(gè)cat分支的SHA-1值記下來怎么辦?查得到嗎4.3、其實(shí)所謂的“合并分支”,合并的并不是“分支”

5、使用Rebase合并5.1、使用Rebase合并分支5.2、Rebase原理5.3、原來Commit的去向5.4、誰Rebase誰有區(qū)別嗎5.5、取消Rebase1、使用Reflog2、使用ORIG_HEAD

6、合并沖突6.1、發(fā)生沖突6.2、解決沖突6.3、處理非文本文件的沖突

7、從過去某個(gè)Commit創(chuàng)建分支

Git分支

1、開始使用分支

在Git中使用分支很簡單,只要使用git branch命令即可:

git branch

如果git branch后面沒有接任何參數(shù),它僅會輸出當(dāng)前在這個(gè)項(xiàng)目中有哪些分支。Git默認(rèn)會設(shè)置一個(gè)名為master的分支,前面的星號(*)表示現(xiàn)在正在這個(gè)分支上。

1.1、新增分支

要增加一個(gè)分支,可在執(zhí)行g(shù)it branch命令時(shí),在后面加上想要的分支的名稱:

git branch cat

這樣就新增了一個(gè)cat分支。再查看一下:

git branch

可以看出,的確多了一個(gè)分支,但當(dāng)前分支還是在master上。

1.2、更改分支名稱

如果覺得分支名取得不夠響亮,可以隨時(shí)更改,而且不會影響文件或目錄。假設(shè)現(xiàn)在的分支有3個(gè):

git branch

如果把cat分支改成tiger分支,使用的是-m參數(shù):

git branch -m cat tiger

看一下當(dāng)前的分支:

git branch

即使是master分支也可以改,如把master改成slave:

git branch -m master slave

1.3、刪除分支

當(dāng)前共有3個(gè)分支,如果其中的dog分支不需要了,可以使用-d參數(shù)來刪除:

git branch -d dog

如果要?jiǎng)h除的分支還沒有被完全合并,Git會有貼心小提示:

git branch -d tiger

因?yàn)閠iger的內(nèi)容還沒有被合并,所以使用-d參數(shù)無法將其刪除。這時(shí)只需改用-D參數(shù)即可將其強(qiáng)制刪除:

git branch -D tiger

在Git中什么分支都可以刪,包括默認(rèn)的master分支(master只是默認(rèn)的分支,并沒有其他特別之處)。如果非要說哪個(gè)分支是不能刪的,只有“當(dāng)前所在的分支”不能刪,不過只要先切換到其他分支就可以將其刪除。

摘錄來自: 高見龍. “Git從入門到精通。” Apple Books.

1.4、切換分支

要切換分支,就是git checkout:

git checkout tiger

看一下當(dāng)前的分支狀態(tài):

git branch

可以看到,前面的那個(gè)星號已經(jīng)移到tiger分支上了。

1.5、切換分支時(shí)

例如,上文已經(jīng)切換到tiger分支,然后新增tiger1.txt和tiger2.txt文件,并Commit:

echo "tiger1" > tiger1.txt

echo "tiger2" > tiger2.txt

git add .

git commit tiger1.txt -m "add tiger1"

git commit tiger2.txt -m "add tiger2"

查看一下Git記錄:

git log --oneline

可以看出,tiger分支的確比master分支多前進(jìn)了兩次Commit。

再看一下文件列表:

ls -al

這時(shí)如果切換回原本的master分支:

git checkout master

再看一下文件列表:

剛才那兩個(gè)文件不見了!別擔(dān)心,其實(shí)它們都還在,只是在不同的分支而已,只要切換回cat分支,文件就會出現(xiàn)了。

1.6、要切換到哪個(gè)分支,首先要有那個(gè)分支

如果要切換到某個(gè)分支,這個(gè)分支必須要先存在,不然會發(fā)生錯(cuò)誤:

如果沒有這個(gè)分支,只要在給git checkout分支命名的時(shí)候加上-b參數(shù)就沒問題了。如果這個(gè)分支本來就存在,Git就會直接切換過去;如果不存在,Git就會幫你創(chuàng)建一個(gè),然后再切換過去:

git checkout -b aaa

2、分支原理

2.1、單個(gè)分支

可以把分支想象成一張貼紙,貼在某一個(gè)Commit上面:

當(dāng)做了一次新的Commit之后,這個(gè)新的Commit會指向它的前一個(gè)Commit:

而接下來“當(dāng)前的分支”,也就是HEAD所指的這個(gè)分支,會貼到剛剛做的那個(gè)Commit上,同時(shí)HEAD也會跟著前進(jìn):

2.2、多個(gè)分支

如果一個(gè)分支不夠說明,那就來兩個(gè)。通過git branch cat命令創(chuàng)建一個(gè)新的分支。它就像一張貼紙,與master貼在同一個(gè)地方:

接下來執(zhí)行g(shù)it checkout cat命令,切換到cat分支。此時(shí),HEAD轉(zhuǎn)而指向cat分支,表示它是“當(dāng)前的分支”:

接著進(jìn)行一次新的Commit,這個(gè)新的Commit會指向前一次Commit:

然后,cat分支上的“貼紙”就會被撕下來,轉(zhuǎn)而貼到最新的那個(gè)Commit上;當(dāng)然HEAD也是一樣:

2.3、切換分支時(shí)的邏輯

Git在切換分支時(shí)主要做了以下兩件事:

1、更新暫存區(qū)和工作目錄

Git在切換分支時(shí),會用該分支指向的那個(gè)Commit的內(nèi)容來“更新”暫存區(qū)(Staging Area)及工作目錄(Working Directory)。但在切換分支之前所做的改動(dòng)則會留在工作目錄中,不受影響。

這段話有點(diǎn)難理解,先來看看前半段的意思。假設(shè)原本正處于cat分支,執(zhí)行下面的命令后,就會由cat分支切換到master分支:

git checkout master

接下來,Git會用master分支指向的那個(gè)Commit的內(nèi)容來更新暫存區(qū)及工作目錄。因?yàn)閙aster此時(shí)指向的Commit并沒有cat1.html和cat2.html這兩個(gè)文件,所以“更新”之后,不管在暫存區(qū)還是在工作目錄中都不會有這兩個(gè)文件。同理,再次切換回cat分支時(shí):

git checkout cat

Git會用cat分支指向的那個(gè)Commit的內(nèi)容來“更新”暫存區(qū)及工作目錄,所以這兩個(gè)文件就又出現(xiàn)了。

在Git的世界中,每一次的Commit都是一個(gè)對象,它會指向某一個(gè)Tree對象(目錄),而這些Tree對象會指向其他的Tree對象(子目錄)或Blob對象(文件)。這種結(jié)構(gòu)有點(diǎn)像葡萄。只要伸手把源頭的Commit對象拎起來,整串內(nèi)容都可以被拿出來。

2、變更HEAD的位置

除了更新暫存區(qū)及工作目錄的內(nèi)容外,HEAD也會指向剛剛切換過去的那個(gè)分支,也就是說,.git/HEAD文件會一起被改動(dòng)。

2.4、如果將文件改動(dòng)了一半就切換分支

假設(shè)現(xiàn)在還在cat分支,在切換到master分支之前,新增了一個(gè)cat3.html文件,同時(shí)也改動(dòng)了index.html文件的內(nèi)容,這時(shí)的狀態(tài)如下:

當(dāng)前index.html是modified狀態(tài),而cat3.html是Untracked狀態(tài)。如果這時(shí)就直接切換到master分支,也就是還沒Commit就切換分支,會發(fā)生什么事?

前文提到過,“Git在切換分支時(shí),會用該分支指向的那個(gè)Commit的內(nèi)容來‘更新’暫存區(qū)(Staging Area)及工作目錄(Working Directory)。但在切換分支之前所做的改動(dòng)則會留在工作目錄中,不受影響”。其中“在切換分支之前所做的改動(dòng)則會留在工作目錄中,不受影響”說的就是這件事。直接操作看看:

git checkout master

查看一下文件列表:

可以看到,剛剛新增的cat3.html文件還在。再看一下Git的狀態(tài):

可以看到,Git的狀態(tài)與剛剛在cat分支時(shí)的狀態(tài)是一樣的,也就是說,切換分支并不會影響已經(jīng)在工作目錄中的那些改動(dòng)。

3、合并分支

3.1、合并示例

在前面的例子中,從master分支開了一個(gè)cat分支,隨后修改了index.html和新增了cat3.html文件,我們進(jìn)行兩次Commit,現(xiàn)在大概是這個(gè)樣子:

任務(wù)執(zhí)行得差不多了,就要準(zhǔn)備合并回來了。如果想要用master分支來合并cat分支,就要先切換回master分支:

git checkout master

接下來,使用git merge命令合并分支:

git merge cat

查看一下文件列表: 因?yàn)閙aster現(xiàn)在已經(jīng)合并了cat分支,所以在cat分支新增的cat3.html文件在master分支也出現(xiàn)了。

3.2、A合并B與B合并A區(qū)別

在此假設(shè)從master分支創(chuàng)建了cat和dog兩個(gè)分支,并且當(dāng)前正在cat分支:

cat分支與dog分支都是來自master分支,所以不管master是要合并cat分支還是dog分支,Git都會直接使用快轉(zhuǎn)模式(Fast Forward)進(jìn)行合并,也就是master直接“收割”cat或dog的成果。

但如果是cat與dog這兩個(gè)分支要互相合并就不一樣了,雖然它們有同樣的來源,但要合并就不會這么順利了。在這種情況下,Git會生成一個(gè)額外的Commit來處理這件事。一般的Commit只會指向某一個(gè)Commit,但這個(gè)Commit會指向兩個(gè)Commit,明確地標(biāo)記是來自哪兩個(gè)分支。

來看看會怎么演變。假設(shè)想用cat分支來合并dog分支,可用如下命令:

git merge dog

執(zhí)行這個(gè)命令時(shí)會彈出一個(gè)Vim編輯器窗口,為了進(jìn)行這次合并,Git做出了這個(gè)額外的Commit對象,這個(gè)Commit會分別指向cat分支和dog分支,HEAD隨著cat分支往前,而dog分支停留在原地:

如果改由dog分支來合并cat分支,則使用如下命令:

git merge cat

程序上與剛才幾乎是一樣的。這時(shí)的狀態(tài)如圖:

其實(shí)就結(jié)果來看,不管是誰合并誰,這兩個(gè)分支的文件最后都得到了。

事實(shí)上不管是誰合并誰,這兩個(gè)分支上的Commit都是對等的。如果非要說哪里不一樣,就是cat分支合并dog分支時(shí),cat分支會往前移動(dòng),反之亦然。不過前面提到過,分支就像貼紙一樣,刪除或改名都不會影響現(xiàn)在已經(jīng)存在的Commit。

不一樣的地方還有一處,就是這個(gè)為了合并而生成的額外的Commit對象,里面會記錄兩個(gè)“老爸”,誰合并誰就會有“誰在前面”的區(qū)別,不過這就有點(diǎn)太過細(xì)節(jié)了。

3.3、合并過的分支要保留嗎

結(jié)論:都可以,看自己的需要。

基本上,分支就是一個(gè)只有40字節(jié)的文件而已。這個(gè)分支,也就是這40個(gè)字節(jié),會標(biāo)記出它當(dāng)前指向哪一個(gè)Commit。不管是上節(jié)提到的快轉(zhuǎn)模式(Fast Forward)還是非快轉(zhuǎn)模式,只要該分支被合并過,就代表“這些內(nèi)容本來只有你有,現(xiàn)在我也有了”。

既然合并后,原本沒有的內(nèi)容都有了,而分支本身又像一張貼紙一樣“地位低微”,那么它也就沒有利用價(jià)值了。所以,合并過的分支想刪就刪吧。刪除分支就只是把一張貼紙撕下來而已,原來被這張貼紙貼著的東西并不會因此而不見。

當(dāng)然,沒有被合并過的分支就是另一回事了?;氐皆瓉淼膯栴}——合并過的分支要留著嗎?都可以,如果想要?jiǎng)h掉,或者已經(jīng)和這個(gè)分支建立“感情”了,想留著做紀(jì)念也可以。

4、不小心把還沒合并的分支刪除了,救得回來嗎

4.1、恢復(fù)已被刪除的還沒合并過的分支

合并過的分支想留就留、想刪就刪,Git的分支并不是復(fù)制文件到某個(gè)目錄,所以不會因?yàn)閯h掉分支文件就不見了。

但如果刪除的是還未合并的分支就不一樣了。先想象一下這個(gè)畫面:

cat分支是從master分支出去的,當(dāng)前領(lǐng)先master分支兩次Commit,而且還沒有合并過。這時(shí)如果試著刪掉cat分支,它會提醒:“這個(gè)分支還沒全部合并哦”。

$ git branch -d cat

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

雖然Git這么貼心地提醒了,但這里仍然把它刪除了:

$ git branch -D cat

Deleted branch cat (was b174a5a).

這時(shí)的關(guān)聯(lián)圖如圖:

上面不是已經(jīng)刪除cat分支了嗎,怎么還在?這里再次跟大家說明一下分支的概念:分支只是一個(gè)指向某個(gè)Commit的指標(biāo),刪除這個(gè)指標(biāo)并不會使那些Commit消失。

所以,刪掉分支后那些Commit還在,只是因?yàn)槟悴恢阑驔]有記下那些Commit的SHA-1值,所以不容易再拿來利用。原本領(lǐng)先master分支的那兩個(gè)Commit現(xiàn)在就像空氣一樣,雖然看不到,但它們是存在的。既然存在,那就把它們“接回來”吧:

$ git branch new_cat b174a5a

這個(gè)命令是“請幫我創(chuàng)建一個(gè)叫作new_cat的分支,讓它指向b174a5a這個(gè)Commit”,也就是再拿一張新的貼紙貼回去??匆幌卢F(xiàn)在的分支:

$ git branch

* master

new_cat

切換過去試試看:

$ git checkout new_cat

Switched to branch 'new_cat'

確認(rèn)一下文件列表,失去的文件都回來了。

4.2、還沒有把剛剛刪除的那個(gè)cat分支的SHA-1值記下來怎么辦?查得到嗎

可以用git reflog命令去查找,Reflog默認(rèn)會保留30天,所以30天內(nèi)還找得到。

4.3、其實(shí)所謂的“合并分支”,合并的并不是“分支”

如果你對Git分支的認(rèn)識是正確的,就可以猜到下面這個(gè)命令在做什么:

$ git merge b174a5a

Updating e12d8ef..b174a5a Fast-forward cat1.html | 0 cat2.html | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 cat1.html create mode 100644 cat2.html

這不是在合并分支時(shí)彈出來的信息嗎?是的,所謂的“合并分支”,其實(shí)是合并“分支指向的那個(gè)Commit”。分支只是一張貼紙,它是沒有辦法被合并的,只是大家會用“合并分支”這個(gè)說法,畢竟它比“合并Commit”容易理解。

分支只是一個(gè)指向某個(gè)Commit的指向標(biāo)。

5、使用Rebase合并

5.1、使用Rebase合并分支

準(zhǔn)備環(huán)境:

git branch dog

git checkout dog

echo "dog1" > dog1.txt

echo "dog2" > dog2.txt

git add .

git commit dog1.txt -m "dog1"

git commit dog2.txt -m "dog2"

git branch cat

git checkout cat

echo "cat1" > cat1.txt

echo "cat2" > cat2.txt

git add .

git commit cat1.txt -m "cat1"

git commit cat2.txt -m "cat2"

狀態(tài)如圖:

在Git中還有一個(gè)命令叫作git rebase,也可以用來做與git merge命令類似的事情。從字面上來看,rebase是“re”加上“base”,其中文含義大致是重新定義分支的參考基準(zhǔn)。

所謂“base”,就是指“這個(gè)分支是從哪里生成的”。以上面這個(gè)例子來說,cat與dog兩個(gè)分支的base都是master。接著使用git rebase命令來“組合”cat和dog這兩個(gè)分支:

git rebase dog

用通俗的話來說,上述命令的含義大致就是“我(即cat分支)現(xiàn)在要重新定義我的參考基準(zhǔn),并且將使用dog分支作為我新的參考基準(zhǔn)”。

Rebase合并方式和一般的合并方式的一個(gè)很明顯的區(qū)別,就是使用Rebase方式合并分支,Git不會做出一個(gè)專門用來合并的Commit。

5.2、Rebase原理

Rebase的過程大概是這樣的:

先將c68537這個(gè)Commit接到053fb2這個(gè)Commit上。因?yàn)閏68537的上一層Commit原本是e12d8e,現(xiàn)在要接到053fb2上,所以需要重新計(jì)算這個(gè)Commit的SHA-1值,重新做出一個(gè)新的Commit對象35bc96。再拿b174a5這個(gè)Commit接到剛剛做出來的Commit對象35bc96上。同理,因?yàn)閎174a5這個(gè)Commit要接到新的Commit上,所以它會重新計(jì)算SHA-1值,得到一個(gè)新的Commit對象28a76d。最后,原本的cat是指向b174a5這個(gè)Commit的,現(xiàn)在轉(zhuǎn)而指向最后做出來的那個(gè)新的Commit對象28a76d。HEAD還是繼續(xù)指向cat分支。

5.3、原來Commit的去向

原本的那兩個(gè)Commit(灰色),即c68537和b174a5的去向是哪里?

它們還是在Git的空間中占有一席之地,只是因?yàn)橐呀?jīng)沒有分支指著它們了,所以如果沒有特別去記這兩個(gè)Commit的SHA-1值,它們就會慢慢被邊緣化。

但它們并沒有馬上被刪除,只是默默地待在那里,直到有一天被Git的資源回收車?yán)摺?/p>

5.4、誰Rebase誰有區(qū)別嗎

僅從最后的文件來說并沒有什么區(qū)別,但就歷史記錄來說則有區(qū)別,誰Rebase誰,會造成歷史記錄的先后順序不同。

5.5、取消Rebase

如果是一般的合并,只要git reset HEAD^ --hard一行命令,刪除這個(gè)合并的Commit后,這些分支就會退回合并前的狀態(tài)。但是,從上面的結(jié)果可知,Rebase并沒有做出那個(gè)合并專用的Commit,而是整個(gè)都串在一起了,與一般的Commit差不多。所以這時(shí)如果執(zhí)行g(shù)it reset “HEAD^ --hard命令,只會刪除最后一個(gè)Commit,但并不會回到Rebase前的狀態(tài)?!?/p>

要想取消Rebase,可使用以下三種方式:

1、使用Reflog

其實(shí)Reflog會記錄很多好用的東西。例如,剛剛把cat分支Rebase到了dog分支上,其狀態(tài)就會是這樣的:

查看一下現(xiàn)在的Reflog:

這個(gè)a9aa5bf (cat) HEAD@{5}: commit: cat2就是開始做Rebase前的最后動(dòng)作,所以就是這個(gè)Commit了!下面使用Reset命令硬切回去:

git reset a9aa5bf --hard

這樣一來,就會回到Rebase前的狀態(tài)了。

2、使用ORIG_HEAD

在Git中有另一個(gè)特別的記錄點(diǎn)——ORIG_HEAD。ORIG_HEAD會記錄“危險(xiǎn)操作”之前HEAD的位置。例如,分支合并或Reset之類的都算是所謂的“危險(xiǎn)操作”。通過這個(gè)記錄點(diǎn)來取消這次Rebase相對來說更簡單:

git rebase dog

git reset ORIG_HEAD --hard

實(shí)際也是回到a9aa5bf位置的Commit。

6、合并沖突

6.1、發(fā)生沖突

Git可以檢查出簡單的沖突,所以并不是改到同一個(gè)文件就一定會發(fā)生沖突,但改到同一行就會出現(xiàn)沖突。假設(shè)在cat分支改動(dòng)了index.html文件的內(nèi)容:

git add .

git commit index.html -m "cat branch update"

然后在dog分支也改動(dòng)了index.html文件的內(nèi)容:

git add .

git commit index.html -m "dog branch update"

這時(shí)進(jìn)行合并,不管是一般的合并還是使用Rebase進(jìn)行合并,都會出現(xiàn)沖突。下面先使用一般的合并:

git merge dog

這時(shí)Git發(fā)現(xiàn)那個(gè)index.html文件出現(xiàn)問題了。我們先看一下當(dāng)前的狀態(tài):

因?yàn)閕ndex.html文件的兩邊都被改動(dòng)了,所以Git把它標(biāo)記成both modified狀態(tài)。

6.2、解決沖突

查看index.html文件的內(nèi)容:

Git把有沖突的段落標(biāo)記出來了,上面是HEAD,也就是當(dāng)前所在的cat分支,中間是分隔線,下面是dog分支的內(nèi)容。

也就是說,<<<<<<< HEAD和=========之間的內(nèi)容是當(dāng)前cat分支的修改,===========和>>>>>>>>>> dog之間的內(nèi)容是dog分支的修改。

這個(gè)問題看來是溝通不良造成的。要解決問題,就要把兩邊的人請過來討論一下,看看到底該用誰的code。最后決定還是采納cat分支的內(nèi)容,順便把那些標(biāo)記修掉。最后內(nèi)容如下:

改完后,切記把這個(gè)文件加回暫存區(qū):

git add index.html

然后就可以Commit并完成這一回合了:

git commit -m "conflict fixed"

6.3、處理非文本文件的沖突

因?yàn)樯厦娴膇ndex.html文件是文本文件,所以Git可以標(biāo)記出發(fā)生沖突的點(diǎn)在哪里,用肉眼就能看得出來大概該怎樣解決,但如果是圖像文件之類的二進(jìn)制文件該怎么辦?例如,在cat分支和dog分支同時(shí)加了一張叫作cute_animal.jpg(可愛的動(dòng)物)的圖片,則合并時(shí)出現(xiàn)沖突的信息為:

$ git merge dog

warning: Cannot merge binary files: cute_animal.jpg (HEAD vs. dog) Auto-merging cute_animal.jpg CONFLICT (add/add): Merge conflict in cute_animal.jpg Automatic merge failed; fix conflicts and then commit the result.

這時(shí)要把兩邊的人請過來,討論到底誰才是最可愛的動(dòng)物。最后決定貓才是最可愛的動(dòng)物,所以決定用cat分支的文件:

git checkout --ours cute_animal.jpg

如果要用dog分支,則使用--theirs參數(shù):

git checkout --theirs cute_animl.jpg

決定之后,像前面一樣將內(nèi)容加到暫存區(qū),準(zhǔn)備Commit,然后結(jié)束這一回合。

7、從過去某個(gè)Commit創(chuàng)建分支

歷史記錄如下:

要從add sql.的Commit(62fb48e)中再做出新的分支,首先要回到那個(gè)Commit的狀態(tài),這時(shí)使用的是git checkout命令:

git checkout 62fb48e

從這段信息中可以看出,當(dāng)前正處于detached HEAD狀態(tài)??梢詮默F(xiàn)在這個(gè)Commit開出新的分支。使用Checkout命令的-b參數(shù)直接創(chuàng)建分支并自動(dòng)切換過去:

git checkout -b xxx

如果不想兩步操作,也可以一行直接搞定:

git branch xxx 62fb48e

意思就是“請幫我在62fb48e這個(gè)Commit上開一個(gè)xxx分支”。

柚子快報(bào)激活碼778899分享:Git——分支詳解

http://yzkb.51969.com/

相關(guān)鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19027996.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄