源碼管理工具之git的使用

一、git簡(jiǎn)介

git是目前世界上被最廣泛使用的現(xiàn)代軟件版本管理系統(tǒng)思灰。git本身亦是一個(gè)成熟并處于活躍開(kāi)發(fā)狀態(tài)的開(kāi)源項(xiàng)目祷舀,它最初是由Linux操作系統(tǒng)內(nèi)核的創(chuàng)造者Linus Torvalds在2005年創(chuàng)造本涕。

二、在Mac OS X上安裝git

如果你正在使用Mac做開(kāi)發(fā)毕莱,有兩種安裝git的方法器贩。

  • 安裝homebrew,然后通過(guò)homebrew安裝git朋截,具體方法請(qǐng)參考homebrew的文檔:http://brew.sh/蛹稍。
  • 直接從AppStore安裝Xcode巧勤,Xcode集成了git度迂。不過(guò)默認(rèn)沒(méi)有安裝尚骄,你需要運(yùn)行Xcode脯颜,選擇菜單“Xcode”->“Preferences”,在彈出窗口中找到“Downloads”寂呛,選擇“Command Line Tools”其馏,點(diǎn)“Install”就可以完成安裝了骗奖。

三剧蹂、創(chuàng)建本地倉(cāng)庫(kù)

倉(cāng)庫(kù):英文名repository声功,可以簡(jiǎn)單理解成一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被git管理起來(lái)宠叼,每個(gè)文件的修改先巴、刪除,git都能記錄冒冬,以便任何時(shí)刻都可以查找歷史記錄伸蚯,或者在回滾到以前修改的狀態(tài)。

1简烤、首先剂邮,選擇一個(gè)合適的地方,創(chuàng)建一個(gè)空目錄横侦,執(zhí)行:

git init

創(chuàng)建新的git倉(cāng)庫(kù)挥萌,會(huì)發(fā)下在當(dāng)前的創(chuàng)建的目錄下面多了一個(gè).git的目錄绰姻,這個(gè)目錄是git來(lái)管理倉(cāng)庫(kù)的。
注意:
沒(méi)事千萬(wàn)不要手動(dòng)修改這個(gè)目錄里面的文件瑞眼,不然就把會(huì)git倉(cāng)庫(kù)給破壞了龙宏。

2棵逊、添加文件到git倉(cāng)庫(kù)

把文件添加到倉(cāng)庫(kù):

git add <filename>
git add .

注意:
git add <filename>是把某一個(gè)文件添加到git的緩存區(qū)里面伤疙。
git add .是把所有的文件添加到git的緩存區(qū)里面。

3辆影、把文件提交到本地倉(cāng)庫(kù)

git commit -m "代碼提交信息"

注意:

  • git commit命令徒像,一般會(huì)在后面加上-m表示本次提交到本地倉(cāng)庫(kù)的記錄。
  • commit message言簡(jiǎn)意賅蛙讥,不要寫無(wú)用信息锯蛀,這樣讓別人不能看懂這次提交的意義。
  • 在開(kāi)發(fā)時(shí)次慢,良好的習(xí)慣是根據(jù)工作進(jìn)度及時(shí)commit旁涤,并務(wù)必注意附上有意義的commit message。創(chuàng)建完項(xiàng)目目錄后迫像,第一次提交的commit message一般為Initial commit.劈愚。
  • 添加一個(gè)新的Pod庫(kù)或pod update后,要單獨(dú)提交一個(gè)commit闻妓,統(tǒng)一commit messagepod add xxxpod update xxx菌羽。

四、遠(yuǎn)程倉(cāng)庫(kù)

一般使用git的公司都會(huì)有自己的git服務(wù)器或者使用第三方git服務(wù)器由缆,比如coding.net注祖、碼云等。
由于你的本地git倉(cāng)庫(kù)和git服務(wù)器倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的均唉,需要設(shè)置:

  • 創(chuàng)建SSH Key是晨。在用戶主目錄下,看看有沒(méi)有.ssh目錄舔箭。如果有罩缴,再看看這個(gè)目錄下有沒(méi)有id_rsaid_rsa.pub這兩個(gè)文件,如果已經(jīng)有限嫌,可直接跳到下一步靴庆。如果沒(méi)有,打開(kāi)Shell怒医,創(chuàng)建SSH Key
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
  • 將公共SSH密鑰復(fù)制到剪貼板:
pbcopy < ~/.ssh/id_rsa.pub
  • 登陸git服務(wù)器炉抒,打開(kāi)“Account settings”“SSH Keys”頁(yè)面:
  • 點(diǎn)“Add SSH Key”稚叹,填上任意Title焰薄,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容:
image.png

注意:
為什么git服務(wù)器需要SSH Key呢拿诸?因?yàn)?code>git服務(wù)器需要識(shí)別出你推送的提交確實(shí)是你推送的,而不是別人冒充的塞茅,而git支持SSH協(xié)議亩码,所以,git服務(wù)器只要知道了你的公鑰野瘦,就可以確認(rèn)只有你自己才能推送描沟。

當(dāng)然,git服務(wù)器允許你添加多個(gè)Key鞭光。假定你有若干電腦吏廉,你一會(huì)兒在公司提交,一會(huì)兒在家里提交惰许,只要把每臺(tái)電腦的Key都添加到git服務(wù)器席覆,就可以在每臺(tái)電腦上往git服務(wù)器推送了。

五汹买、添加遠(yuǎn)程倉(cāng)庫(kù)

  • 登陸git服務(wù)器佩伤,然后,找到“Create a new repo”按鈕晦毙,創(chuàng)建一個(gè)新的倉(cāng)庫(kù):
  • Repository name填入learngit生巡,其他保持默認(rèn)設(shè)置,點(diǎn)擊“Create repository”按鈕结序,就成功地創(chuàng)建了一個(gè)新的git倉(cāng)庫(kù)障斋。
    注意:
    目前,在git服務(wù)器上的這個(gè)learngit倉(cāng)庫(kù)還是空的徐鹤,git服務(wù)器告訴我們垃环,可以從這個(gè)倉(cāng)庫(kù)克隆出新的倉(cāng)庫(kù),也可以把一個(gè)已有的本地倉(cāng)庫(kù)與之關(guān)聯(lián)返敬,然后遂庄,把本地倉(cāng)庫(kù)的內(nèi)容推送到git服務(wù)器倉(cāng)庫(kù)。
image.png

通過(guò)上圖可以看出:
1劲赠、如果在本地沒(méi)有創(chuàng)建倉(cāng)庫(kù)涛目,可以通過(guò)下面命令從git服務(wù)器clone出一個(gè)新的倉(cāng)庫(kù):

git clone http://michael@git.51fanxing.com:88/fxbest/ios/learngit.git
cd learngit
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

2、如果本地已經(jīng)創(chuàng)建了凛澎,可以通過(guò)下面命令把本地倉(cāng)庫(kù)與git服務(wù)器倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián):

cd existing_folder
git init
git remote add origin http://michael@git.51fanxing.com:88/fxbest/ios/learngit.git
git add .
git commit
git push -u origin master

注意:
1霹肝、git remote add origin表示將本地服務(wù)器與git服務(wù)器進(jìn)行關(guān)聯(lián)。
2塑煎、origingit服務(wù)器的別名沫换,取什么名字都可以,你也可以在push時(shí)將git服務(wù)器替換為 origin最铁。但為了以后push方便讯赏,我們第一次一般都會(huì)先remote add垮兑。
3、git push -u origin master將你修改或者添加的文件提交到git服務(wù)器漱挎。

3系枪、git remote
git remote命令允許你創(chuàng)建、查看和刪除和其它倉(cāng)庫(kù)之間的遠(yuǎn)程連接磕谅。

git remote

列出和其他倉(cāng)庫(kù)之間的遠(yuǎn)程連接私爷。

git remote -v

列出和其他倉(cāng)庫(kù)之間的遠(yuǎn)程連接,但同時(shí)顯示每個(gè)連接的URL怜庸。

git remote add <name> <url>

創(chuàng)建一個(gè)新的遠(yuǎn)程倉(cāng)庫(kù)連接当犯。在添加之后,可以將<name>作為<url>便捷的別名在其他git命令中使用割疾。

git remote rm <name>

移除名為的遠(yuǎn)程倉(cāng)庫(kù)的連接。

git remote rename <old-name> <new-name>

將遠(yuǎn)程連接從<old-name>重命名為<new-name>嘉栓。

六宏榕、檢查倉(cāng)庫(kù)狀態(tài)

1、git status
git status命令顯示工作目錄和緩存區(qū)的狀態(tài)侵佃。你可以看到哪些更改被緩存了麻昼,哪些還沒(méi)有,以及哪些還未被git記錄馋辈。

2抚芦、git log
git log命令查看每次commit的歷史記錄。

git log

使用默認(rèn)格式顯示完整地commit記錄迈螟,如果輸出超過(guò)一屏叉抡,你可以用空格鍵來(lái)滾動(dòng),按q退出答毫。

git log -n <limit>

用<limit>限制提交的數(shù)量褥民,比如git log -n 3只會(huì)顯示3個(gè)提交。

git log --oneline

將每個(gè)提交壓縮到一行洗搂,當(dāng)你需要查看項(xiàng)目歷史的上層情況時(shí)這會(huì)很有用消返。

git log --stat

除了git log信息之外,包含哪些文件被更改了耘拇,以及每個(gè)文件相對(duì)的增刪行數(shù)撵颊。

git log -p

顯示代表每個(gè)提交的一堆信息,顯示每個(gè)提交全部的差異(diff)惫叛,這也是項(xiàng)目歷史中最詳細(xì)的視圖倡勇。

git log --author="<pattern>"

搜索特定作者的提交。<pattern>可以是字符串或正則表達(dá)式挣棕。

git log --grep="<pattern>"

搜索提交信息匹配特定<pattern>的提交译隘。<pattern>可以是字符串或正則表達(dá)式亲桥。

七、git reset固耘、git checkout和git revert

git倉(cāng)庫(kù)有三個(gè)主要組成——工作目錄题篷,緩存區(qū)和提交歷史。

image.png

git reset厅目、git checkoutgit revert是你的git工具箱中最有用的一些命令番枚。它們都用來(lái)撤銷代碼倉(cāng)庫(kù)中的某些更改,而前兩個(gè)命令不僅可以作用于提交损敷,還可以作用于特定文件葫笼。

因?yàn)樗鼈兎浅O嗨疲晕覀兘?jīng)常會(huì)搞混拗馒,不知道什么場(chǎng)景下該用哪個(gè)命令路星。

1、git reset

git reset操作會(huì)將當(dāng)前分支的HEAD指向另外一個(gè)commit記錄诱桂,這樣可以在當(dāng)前分支上移除部分commit記錄洋丐。例如,在hotfix分支上回滾前兩次的commit狀態(tài):

git reset HEAD~2
image.png
image.png

當(dāng)執(zhí)行git reset時(shí)挥等,hotfix分支上最后兩次提交的狀態(tài)會(huì)變成空狀態(tài)友绝,等到git執(zhí)行垃圾回收的時(shí)候,hotfix分支上最后兩次提交的狀態(tài)會(huì)被回收肝劲。

  • --soft – 緩存區(qū)和工作目錄都不會(huì)被改變
  • --mixed – 默認(rèn)選項(xiàng)迁客。緩存區(qū)和你指定的提交同步,但工作目錄不受影響
  • --hard – 緩存區(qū)和工作目錄都同步到你指定的提交

git reset一般配合這些參數(shù)使用辞槐,git reset --mixed HEAD將你當(dāng)前的改動(dòng)從緩存區(qū)中移除掷漱,但是這些改動(dòng)還留在工作目錄中。如果你想完全舍棄你沒(méi)有提交的改動(dòng)催蝗,你可以使用git reset --hard HEAD切威,這是git reset最常用的兩種用法。
注意:
git reset是不可逆的丙号,因?yàn)?code>git reset操作會(huì)重寫當(dāng)前分支的歷史先朦,用來(lái)撤銷緩存區(qū)和工作目錄的修改。git reset只適用于本地修改犬缨,不能重設(shè)服務(wù)器上的commit記錄喳魏。

2、git checkout

  • 切換分支:
git checkout hotfix

注意:
使用git checkout之前怀薛,要把工作區(qū)的內(nèi)容提交到git服務(wù)器或者緩存區(qū)刺彩。git checkout是將HEAD指針從一個(gè)分支切換到另一個(gè)分支,然后更新工作目錄。因?yàn)檫@可能會(huì)覆蓋本地的修改创倔,git會(huì)強(qiáng)制你提交或者緩存工作目錄中的所有更改嗡害,不然在checkout的時(shí)候這些更改都會(huì)丟失。

image.png
image.png
  • 查看文件之前的版本

除了切換分支之外畦攘,git checkout還可以將HEAD指針移動(dòng)到當(dāng)前分支其他的commit記錄霸妹。

git checkout HEAD~2

git checkout更改的是工作目錄而不是緩存區(qū)

git checkout HEAD~2 xxx

如果你緩存并且提交了checkout的文件,它具備將某個(gè)文件回撤到之前版本的效果知押,注意它撤銷了這個(gè)文件后面所有的更改叹螟。不影響你倉(cāng)庫(kù)的當(dāng)前狀態(tài)。你可以在新的快照中像其他文件一樣重新提交舊版本台盯。所以罢绽,在效果上,git checkout的這個(gè)用法可以用來(lái)將單個(gè)文件回滾到舊版本静盅。

image.png
image.png

注意:
git checkout是可逆的良价。

3、git revert

git revert撤銷一個(gè)commit記錄的同時(shí)會(huì)創(chuàng)建另一個(gè)新的commit記錄温亲,這是一個(gè)安全的方法棚壁,而不是從項(xiàng)目歷史中移除這個(gè)提交。這避免了git丟失項(xiàng)目歷史記錄栈虚,這一點(diǎn)對(duì)于你的版本歷史和協(xié)作的可靠性來(lái)說(shuō)是很重要的。

比如史隆,下面的命令會(huì)找出倒數(shù)第二個(gè)提交魂务,然后創(chuàng)建一個(gè)新的提交來(lái)撤銷這些更改,然后把這個(gè)提交加入項(xiàng)目中泌射。

git revert HEAD~2
image.png
image.png

git revert應(yīng)該用在你想要在項(xiàng)目歷史中移除一整個(gè)提交的時(shí)候粘姜。比如說(shuō),你在追蹤一個(gè) bug熔酷,然后你發(fā)現(xiàn)它是由一個(gè)提交造成的孤紧,這時(shí)候撤銷就很有用。與其說(shuō)自己去修復(fù)它拒秘,然后提交一個(gè)新的快照号显,不如用git revert,它幫你做了所有的事情躺酒。

git revert回滾了單獨(dú)一個(gè)提交押蚤,它沒(méi)有移除后面的提交記錄,同時(shí)會(huì)創(chuàng)建另一個(gè)新的commit記錄羹应。

image.png

git reset回滾了單獨(dú)一個(gè)提交揽碘,并且移除后面的提交記錄,是不可逆的

image.png

git revert可以針對(duì)歷史記錄中任何一個(gè)提交雳刺,而git reset只能從當(dāng)前提交向前回滾劫灶。比如,你想用git reset重設(shè)一個(gè)舊的提交掖桦,你不得不移除那個(gè)提交后的所有提交本昏,再移除那個(gè)提交,然后重新提交后面的所有提交滞详。一般公司不提倡這么做凛俱。因此,git revert可以用在公共分支上料饥,git reset應(yīng)該用在私有分支上蒲犬。

4、git reset用慎用
當(dāng)有commit之后的提交被推送到公共分支上岸啡,你絕不應(yīng)該使用git reset原叮。使用git reset回滾了單獨(dú)一個(gè)提交,并且移除后面的提交記錄巡蘸。當(dāng)團(tuán)隊(duì)成員在上面繼續(xù)開(kāi)發(fā)的提交在協(xié)作時(shí)會(huì)引發(fā)嚴(yán)重的問(wèn)題奋隶。當(dāng)他們?cè)囍湍愕膫}(cāng)庫(kù)同步時(shí),他們會(huì)發(fā)現(xiàn)項(xiàng)目歷史的一部分突然消失了悦荒。
下面的序列展示了如果你嘗試重設(shè)公共提交時(shí)會(huì)發(fā)生什么唯欣。origin/master是你本地master分支對(duì)應(yīng)的中央倉(cāng)庫(kù)中的分支。

image.png
image.png
image.png

一旦你在重設(shè)之后又增加了新的提交搬味,git會(huì)認(rèn)為你的本地歷史已經(jīng)和 origin/master分叉了境氢,同步你的倉(cāng)庫(kù)時(shí)的合并提交(merge commit)會(huì)使你的同事困惑。

5碰纬、git clean

git clean命令將未記錄的文件從你的工作目錄中移除萍聊。它只是提供了一條捷徑,因?yàn)橛?code>git status查看未記錄的文件悦析,然后手動(dòng)移除它們也很方便寿桨。和一般的rm命令一樣,git clean是無(wú)法撤消的强戴,所以在刪除未記錄的文件之前想清楚亭螟,你是否真的要這么做。

git clean命令經(jīng)常和git reset --hard一起使用酌泰。記住媒佣,git reset只影響被記錄的文件,所以還需要一個(gè)單獨(dú)的命令來(lái)清理未被記錄的文件陵刹。這個(gè)兩個(gè)命令相結(jié)合默伍,你就可以將工作目錄回到之前特定提交時(shí)的狀態(tài)欢嘿。

注意:
git clean也是不可逆的。

八也糊、分支

1炼蹦、git branch
分支代表了一條獨(dú)立的開(kāi)發(fā)流水線,git branch命令允許你創(chuàng)建狸剃、列出掐隐、重命名和刪除分支。一般git branchgit checkout钞馁、git merge這兩個(gè)命令通常緊密地結(jié)合在一起使用虑省。一般使用過(guò)git的同學(xué)都知道:

  • master是長(zhǎng)期分支,一般用于管理對(duì)外發(fā)布版本僧凰,每個(gè)commit對(duì)一個(gè)tag探颈,也就是一個(gè)發(fā)布版本。
  • develop是長(zhǎng)期分支训措,一般用于作為日常開(kāi)發(fā)匯總伪节,即開(kāi)發(fā)版的代碼
  • feature是短期分支,一般用于一個(gè)新功能的開(kāi)發(fā)绩鸣。
  • hotfix是短期分支 怀大,一般用于正式發(fā)布以后,出現(xiàn)bug呀闻,需要?jiǎng)?chuàng)建一個(gè)分支化借,進(jìn)行bug修補(bǔ)。
  • release是短期分支捡多,一般用于發(fā)布正式版本之前(即合并到master分支之前)屏鳍,需要有的預(yù)發(fā)布的版本進(jìn)行測(cè)試。release分支在經(jīng)歷測(cè)試之后局服,測(cè)試確認(rèn)驗(yàn)收,將會(huì)被合并的developmaster驳遵。
git branch

列出倉(cāng)庫(kù)中所有分支淫奔。

git branch <branch>

創(chuàng)建一個(gè)名為 <branch> 的分支。不會(huì)自動(dòng)切換到那個(gè)分支去堤结。

git branch -d <branch>

刪除指定分支唆迁。這是一個(gè)安全的操作,git會(huì)阻止你刪除包含未合并更改的分支竞穷。

git branch -D <branch>

強(qiáng)制刪除指定分支唐责,即使包含未合并更改。如果你希望永遠(yuǎn)刪除某條開(kāi)發(fā)線的所有提交瘾带,你應(yīng)該用這個(gè)命令鼠哥。

git branch -m <branch>

將當(dāng)前分支命名為<branch>。

2、git merge
用于合并指定分支到當(dāng)前分支朴恳,git merge命令允許你將git branch創(chuàng)建的多條分支合并成一個(gè)抄罕。

注意:
合并指定分支到當(dāng)前分支,當(dāng)前分支會(huì)被更新于颖,以響應(yīng)合并操作呆贿,但目標(biāo)分支完全不受影響。也就是說(shuō)git merge經(jīng)常和git checkout一起使用森渐,選擇當(dāng)前分支做入,然后用git branch -d刪除廢棄的目標(biāo)分支。

git merge <branch>

將指定分支并入當(dāng)前分支同衣。

git merge --no-ff <branch>

將指定分支并入當(dāng)前分支竟块,但 總是 生成一個(gè)合并提交(即使是快速向前合并)。這可以用來(lái)記錄倉(cāng)庫(kù)中發(fā)生的所有合并乳怎。

3彩郊、git merge幾種方法

  • 快速向前合并
    當(dāng)當(dāng)前分支頂端到目標(biāo)分支路徑是線性之時(shí),我們可以采取快速向前合并蚪缀。git只需要將當(dāng)前分支頂端(快速向前地)移動(dòng)到目標(biāo)分支頂端秫逝,即可整合兩個(gè)分支的歷史,而不需要“真正”合并分支询枚。它在效果上合并了歷史违帆,因?yàn)槟繕?biāo)分支上的提交現(xiàn)在在當(dāng)前分支可以訪問(wèn)到。比如金蜀,some-featuremaster分支的快速向前合并會(huì)是這樣的:
image.png
image.png
  • 三路合并
    如果分支已經(jīng)分叉了刷后,那么就無(wú)法進(jìn)行快速向前合并。當(dāng)和目標(biāo)分支之間的路徑不是線性之時(shí)渊抄,git只能執(zhí)行三路合并尝胆。三路合并使用一個(gè)專門的提交來(lái)合并兩個(gè)分支的歷史。這個(gè)術(shù)語(yǔ)取自這樣一個(gè)事實(shí)护桦,git使用三個(gè)提交來(lái)生成合并提交:兩個(gè)分支頂端和它們共同的祖先含衔。
image.png
image.png

很多開(kāi)發(fā)者喜歡使用git rebase快速向前合并,來(lái)合并微小的功能或者修復(fù)bug二庵,使用三路合并來(lái)整合長(zhǎng)期運(yùn)行的功能贪染。后者導(dǎo)致的合并提交作為兩個(gè)分支的連接標(biāo)志。

4催享、解決沖突

如果你嘗試合并的兩個(gè)分支同一個(gè)文件的同一個(gè)部分杭隙,git將無(wú)法決定使用哪個(gè)版本。當(dāng)這種情況發(fā)生時(shí)因妙,它會(huì)停在合并提交痰憎,讓你手動(dòng)解決這些沖突票髓。

當(dāng)你遇到合并沖突時(shí),運(yùn)行git status命令來(lái)查看哪些文件存在需要解決的沖突信殊。

當(dāng)你手動(dòng)修復(fù)完沖突之后炬称,只需對(duì)沖突的文件運(yùn)行git add告訴git沖突已解決。然后涡拘,運(yùn)行git commit生成一個(gè)合并提交玲躯。

使用git log --graph命令可以看到分支合并圖。

團(tuán)隊(duì)合作的分支看起來(lái)就像這樣:


image.png

注意:
提交沖突只會(huì)出現(xiàn)在三路合并中鳄乏。在快速向前合并中跷车,我們不可能出現(xiàn)沖突的更改。

九橱野、創(chuàng)建標(biāo)簽

一般在公司每一個(gè)上線版本都會(huì)打一個(gè)標(biāo)簽朽缴,為了記錄和維護(hù),當(dāng)線上版本出現(xiàn)緊急bug水援,我們就可以通過(guò)git checkout檢出項(xiàng)目密强,然后創(chuàng)建hotfix分支進(jìn)行bug的修復(fù)。

git tag

查看所有標(biāo)簽

git tag <name>
git tag <name> commit id

用于新建一個(gè)標(biāo)簽蜗元,默認(rèn)為HEAD或渤,也可以指定一個(gè)commit id

git show <tagname>

查看標(biāo)簽信息

git push origin <tagname>

可以推送一個(gè)本地標(biāo)簽

git push origin --tags

可以推送全部未推送過(guò)的本地標(biāo)簽

git tag -d <tagname>

可以刪除一個(gè)本地標(biāo)簽

git push origin :refs/tags/<tagname>

可以刪除一個(gè)遠(yuǎn)程標(biāo)簽

Reference:
https://www.atlassian.com/git/tutorials/merging-vs-rebasing
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市奕扣,隨后出現(xiàn)的幾起案子薪鹦,更是在濱河造成了極大的恐慌,老刑警劉巖惯豆,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件池磁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡楷兽,警方通過(guò)查閱死者的電腦和手機(jī)地熄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)芯杀,“玉大人离斩,你說(shuō)我怎么就攤上這事”衲洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵寻馏,是天一觀的道長(zhǎng)棋弥。 經(jīng)常有香客問(wèn)我,道長(zhǎng)诚欠,這世上最難降的妖魔是什么顽染? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任漾岳,我火速辦了婚禮,結(jié)果婚禮上粉寞,老公的妹妹穿的比我還像新娘尼荆。我一直安慰自己,他們只是感情好唧垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布捅儒。 她就那樣靜靜地躺著,像睡著了一般振亮。 火紅的嫁衣襯著肌膚如雪巧还。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天坊秸,我揣著相機(jī)與錄音麸祷,去河邊找鬼。 笑死褒搔,一個(gè)胖子當(dāng)著我的面吹牛阶牍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播星瘾,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼走孽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了死相?” 一聲冷哼從身側(cè)響起融求,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎算撮,沒(méi)想到半個(gè)月后生宛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肮柜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年陷舅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片审洞。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡莱睁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芒澜,到底是詐尸還是另有隱情仰剿,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布痴晦,位于F島的核電站南吮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏誊酌。R本人自食惡果不足惜部凑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一露乏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涂邀,春花似錦瘟仿、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至敷搪,卻和暖如春兴想,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赡勘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工嫂便, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闸与。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓毙替,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親践樱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厂画,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,649評(píng)論 4 54
  • 經(jīng)濟(jì)醬紫拷邢,又不能隨便換袱院。。瞭稼。忽洛。。环肘。這邊就像一個(gè)坑欲虚。。悔雹。
    夏林就是夏天大樹(shù)林閱讀 47評(píng)論 0 0
  • 首先告訴你一個(gè)許多人還不知道的iPhone小技巧复哆,如果你使用iPhone 6s,可以用手指在左屏幕邊緣用力按一下并...
    gentleming閱讀 1,268評(píng)論 0 50
  • 我的舅舅是一個(gè)樂(lè)天派腌零,他遇到難事從不屈服梯找。一年前,他去了深圳益涧,學(xué)習(xí)賣水果初肉,慢慢地他有了個(gè)水果店。可是天有不測(cè)風(fēng)云牙咏,...
    hchhcx閱讀 227評(píng)論 0 0