或許是介紹Android Studio使用Git最詳細(xì)的文章

歡迎訪問我的個(gè)人博客轉(zhuǎn)發(fā)請(qǐng)注明出處:http://www.wensibo.top/2017/03/12/GitOnAS/

</br>

前言

本文較長(zhǎng)奈揍,圖片很多很多讲冠,流量黨慎入
使用Git已經(jīng)有一段時(shí)間了沧侥,但是之前都是使用Git Bash忠荞,在Android Studio上使用Git一開始不是很習(xí)慣曾掂,就像用慣了SVN來使用Git一樣聋亡,琢磨了一段時(shí)間的Android Studio绷旗,也看了我覺得為數(shù)不多但是很有質(zhì)量的介紹AS的書籍 《Android Studio實(shí)戰(zhàn) 快速喜鼓、高效地構(gòu)建Android應(yīng)用》副砍,強(qiáng)烈安利大家哦!所以就寫了這篇文章跟大家一起學(xué)習(xí)如何在Android Studio高效地使用Git庄岖。另外如果大家想要拿來學(xué)習(xí)的話可以直接fork我的項(xiàng)目 豁翎。
另外一點(diǎn)需要說明的就是本文中大量使用Android Studio的快捷鍵,如果你不熟悉隅忿,可以看看我的另外一篇文章 心剥。

安裝Git

我使用的是Windows,所以我這里只能介紹Windows下安裝Git的過程了背桐。
點(diǎn)這里選擇符合你的版本优烧,直接安裝就行了。
安裝完成之后链峭,在開始菜單中找到Git-->Git Bash畦娄,如果出現(xiàn)類似下面的對(duì)話框的話就證明安裝成功了。

Git界面

安裝成功之后弊仪,需要配置一下你的信息纷责,直接在上面的命令行中輸入以下命令:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意:
1.將上方的Your Name換成你自己的名字,隨意起都行撼短。
2.將上方的email@example.com換成你自己的郵箱。
3.講一下git config命令的--global參數(shù)挺勿,用了這個(gè)參數(shù)曲横,表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置,當(dāng)然也可以對(duì)某個(gè)倉(cāng)庫(kù)指定不同的用戶名和Email地址不瓶。

Android Studio配置Git

使用快捷鍵Ctrl+Alt+S打開Settings禾嫉,接著點(diǎn)擊Version Control --> GitPath To Git Executable上輸入Git的存放位置,如下圖:

Git Path

之后點(diǎn)擊旁邊的Test按鈕蚊丐,如果出現(xiàn)如下的成功提示熙参,說明Git配置成功。
Git Success

接著按照下圖配置你的Github賬號(hào)密碼麦备,輸入完成之后點(diǎn)擊Test按鈕孽椰,如果賬號(hào)密碼都正確的話就會(huì)提示成功,那么就可以繼續(xù)往下走了:
Github Account

創(chuàng)建本地倉(cāng)庫(kù)

不管你是剛剛新建的項(xiàng)目凛篙,亦或是已經(jīng)寫好的項(xiàng)目黍匾,進(jìn)行的操作都是一樣的。
這里我以新建一個(gè)名為MyGit的項(xiàng)目為例子呛梆,如果你想練習(xí)锐涯,也可以到這里fork一下。
對(duì)于一個(gè)已經(jīng)新建好的項(xiàng)目填物,找到菜單欄上的VCS纹腌,按照下圖進(jìn)行操作:

創(chuàng)建本地倉(cāng)庫(kù)

選擇項(xiàng)目的根目錄為git初始化的目錄:
初始化目錄

初始化之后你會(huì)發(fā)現(xiàn)原本文件的文件名都是白色的霎终,現(xiàn)在變成了棕色,這表示文件已經(jīng)被git跟蹤了升薯,但是并沒有添加到倉(cāng)庫(kù)中:
棕色目錄

忽略文件

我們知道莱褒,在git初始化一個(gè)倉(cāng)庫(kù)的時(shí)候會(huì)自動(dòng)生成一個(gè).gitignore文件,這個(gè)文件用來忽略那些不用加入到倉(cāng)庫(kù)的文件覆劈,在我們這個(gè)工程中總共生成了兩個(gè).gitignore文件保礼,分別是在項(xiàng)目根目錄下,以及在app文件夾下责语。我們可以對(duì)這些文件進(jìn)行編輯炮障,表示我們需要忽略哪些文件,但是一般情況下坤候,我們選擇默認(rèn)就好胁赢,除非你有需要就進(jìn)行適當(dāng)?shù)男薷模?/p>

.gitignore

添加文件

添加文件就如git命令中的git add,在Android Studio中add的方式有四種白筹,但是都是大同小異智末,讓我來一一舉例:

1.選中項(xiàng)目的根目錄,右鍵選中Git徒河,再選中Add系馆,如下圖:

第一種add方式

2.選中項(xiàng)目根目錄,點(diǎn)擊菜單欄中的VCS菜單顽照,選中Git-->Add由蘑,如下圖:
第二種add方式

3.使用快捷鍵Alt+9,或者點(diǎn)擊屏幕下方的Version Control工具按鈕
打開版本控制的窗口代兵,可以看到應(yīng)該是如下圖的樣子尼酿,該窗口有兩個(gè)下拉欄,一個(gè)是Default植影,用來記錄已經(jīng)添加的文件裳擎,另一個(gè)是Unversioned files,用來記錄已經(jīng)被跟蹤但是未添加的文件思币。
Version Control

右鍵Unversioned files鹿响,選中Git-->Add,如下圖:
第三種add方式

4.使用快捷鍵Ctrl+Alt+A

add之后文件名變成了綠色谷饿,這是代表已經(jīng)添加進(jìn)倉(cāng)庫(kù)為文件抢野,接下來就可以commit文件了,使用快捷鍵Ctrl+K或者選中工程根目錄右鍵Git-->Commit Directory可以調(diào)出commit窗口各墨,如下所示指孤,在其中選擇你想要提交的文件,填寫提交的信息,在Author文本框中可以填寫提交此次提交的操作者名字恃轩,如果不填寫的話结洼,就會(huì)默認(rèn)是之前配置Github賬號(hào)的用戶名〔骢耍可以看到松忍,提交之后文件名重新變回了熟悉的白色

首次提交

提交成功之后筷厘,你可以使用快捷鍵Alt+9鸣峭,或者點(diǎn)擊屏幕下方的Version Control工具按鈕,切換到Log菜單查看Log日志酥艳,如下圖所示:
首次提交Log日志

如何clone項(xiàng)目

使用Git clone項(xiàng)目到本地中是很簡(jiǎn)單的摊溶,在Android Studio中也是如此,首先找到你喜歡的項(xiàng)目充石,fork到你自己的倉(cāng)庫(kù)之后莫换,點(diǎn)擊Clone or Download按鈕,復(fù)制地址骤铃,如下圖所示:


github 復(fù)制地址

接下來回到Android Studio拉岁,按照下圖的操作可以打開clone的對(duì)話框,在地址欄中粘貼剛才復(fù)制的地址惰爬,點(diǎn)擊Test按鈕喊暖,測(cè)試是否可以通過,如果成功撕瞧,那么久可以點(diǎn)擊Clone導(dǎo)入項(xiàng)目了陵叽。


clone項(xiàng)目

Clone Test

** 回到我們最開始講的MyGit項(xiàng)目,首先我們需要模仿一下在日常開發(fā)中使用Git的情形风范,例如我們經(jīng)常會(huì)在分支上進(jìn)行工作,所以熟練地掌握分支工作的流程以及技巧是十分重要的沪么,接下來我會(huì)使用具體的例子跟大家一起了解如何在Android Studio上使用分支進(jìn)行開發(fā)硼婿。
以下舉得例子將會(huì)圍繞Git的一種工作模式,即:Git Flow禽车,如果你對(duì)此不是很了解寇漫,那么推薦你阮一峰老師的文章 。**


Git flow

Git flow是廣泛采用的一種工作流程


Git_flow工作流程圖

他的主要特點(diǎn)有兩個(gè):

1.首先殉摔,項(xiàng)目存在兩個(gè)長(zhǎng)期分支

  • 主分支master
  • 開發(fā)分支dev

前者用于存放對(duì)外發(fā)布的版本州胳,任何時(shí)候在這個(gè)分支拿到的,都是穩(wěn)定的分布版逸月;后者用于日常開發(fā)栓撞,存放最新的開發(fā)版。

2.其次,項(xiàng)目存在三種短期分支

  • 功能分支(feature branch)
  • 補(bǔ)丁分支(hotfix branch)
  • 預(yù)發(fā)分支(release branch)

新增功能1——顯示Hello World

正如我們?cè)诮榻BGit flow介紹的瓤湘,master分支只是用于產(chǎn)品的發(fā)布瓢颅,在平時(shí)的開發(fā)中是不會(huì)使用它的,而只會(huì)使用dev分支弛说,但是如果我們有了新的功能挽懦,一般是會(huì)在dev分支中在創(chuàng)建一條該功能的分支,所以我們應(yīng)該這樣做木人。

創(chuàng)建dev信柿、feature-1分支,并且我們需要轉(zhuǎn)到feature-1分支上

在Android Studio中醒第,我們可以很方便的管理分支渔嚷,在主界面的右下角,點(diǎn)擊Git可以出現(xiàn)當(dāng)前的分支淘讥,默認(rèn)為master圃伶,我們選中New Branch,如下圖所示:

add_branch_feature-1

在彈出的對(duì)話框中我們輸入feature-1蒲列,點(diǎn)擊OK窒朋,這樣我們不僅新建了feature-1分支,并且正處于該分支中蝗岖,接下來按照同樣的方法創(chuàng)建dev分支侥猩,如果不出意外的話,我們現(xiàn)在應(yīng)該是處于dev分支上抵赢,但是因?yàn)槲覀儸F(xiàn)在要開發(fā)功能1欺劳,所以必須轉(zhuǎn)換到feature-1分支上,按照下圖的操作铅鲤,我們能夠回到feature-1分支上划提。
come back to feature-1

接下來打開Log,我們應(yīng)該能夠看到如下的情景:
log for add two branches

可以看到我們現(xiàn)在有三個(gè)分支:master邢享、dev鹏往、feature-1,但是AS提示我們應(yīng)該有四條分支骇塘,其實(shí)HEAD就是當(dāng)前活躍分支的游標(biāo)伊履。形象的記憶就是:你現(xiàn)在在哪兒,HEAD 就指向哪兒款违,所以 Git 才知道你在那兒唐瀑!不過 HEAD 并非只能指向分支的最頂端,實(shí)際上它可以指向任何一個(gè)節(jié)點(diǎn)插爹,它就是 Git 內(nèi)部用來追蹤當(dāng)前位置的標(biāo)記哄辣。我們可以使用下面的圖來演示當(dāng)前分支的情況:
branch_picture_1

完成功能1

/**
     * feature-1
     * display HelloWorld
     * @param view
     */
    public void feature1(View view) {
        if (btn_feature_1.getText().toString().equals("功能1")) {
            btn_feature_1.setText(R.string.feature_1_dis);
        } else {
            btn_feature_1.setText(R.string.feature_1);
        }
    }

好了请梢,功能1編寫完成,那么就提交吧柔滔!老方法:Ctrl+K進(jìn)行提交溢陪,按照下圖填寫提交信息,每一次的提交信息最好能夠詳細(xì)并且格式規(guī)范睛廊,這樣以后再查看Log的時(shí)候就會(huì)比較方便形真。

add feature-1 on feature-1

點(diǎn)擊Commit按鈕提交完畢之后,可以看到現(xiàn)在的log圖變成了下圖:
log after add feature-1

我們可以打開Log圖的右側(cè)超全,他列出了目前正在被Git跟蹤的所有文件咆霜,我們選中MainActivity.java,點(diǎn)擊上邊的第二個(gè)按鈕Show Diff(顯示差異)
show diff

在彈出的界面中可以顯示該文件的當(dāng)前版本和master分支中的該文件的差異嘶朱,我們可以使用Esc快捷鍵退出該界面蛾坯,如下圖所示:
diff1 on MainActivity.java

將feature-1分支合并到dev分支上

如下圖所示,選中dev分支并選擇checkout:


chose dev

你會(huì)發(fā)現(xiàn)現(xiàn)在代碼回到了最開始的狀態(tài)疏遏,現(xiàn)在選中feature-1分支并選中merge脉课,準(zhǔn)備將feature-1分支合并到dev分支上:


merge feature-1 to dev

再來重新看一下Log圖,他長(zhǎng)下面這樣财异,可以看到現(xiàn)在feature-1分支已經(jīng)與dev分支合并倘零,并且現(xiàn)在他們是處于同一狀態(tài)的:
log after merge to dev

最后的最后,我們需要?jiǎng)h除已經(jīng)完成任務(wù)的feature-1分支戳寸,以免分支過多管理混亂呈驶。


delete branch feature-1

新增功能2——顯示Hello Android

同樣的道理,我們可以按照如下的步驟這樣做:

1.遷出dev分支疫鹊,并且新建分支feature-2之后遷出feature-2分支袖瞻,具體的步驟我就不再演示了,跟上面的是一樣的拆吆。

2.開始擼代碼聋迎。

 /**
     * feature-2
     * display HelloAndroid
     * @param view
     */
    public void feature2(View view) {
        if (btn_feature_2.getText().toString().equals("功能2")) {
            btn_feature_2.setText(R.string.feature_2_dis);
        } else {
            btn_feature_2.setText(R.string.feature_2);
        }
    }

3.使用快捷鍵Ctrl+K提交feature-2的修改,并填寫提交信息枣耀。

add feature-2 on branch feature-2

4.切換回dev分支并且合并feature-2分支之后刪除feature-2分支霉晕。
如果不出錯(cuò)的話,你的Log應(yīng)該是下面這樣的:
log after delete feature-2

在dev分支上增加功能3——Hello Java

同樣的道理奕枢,這里我就不再一一演示娄昆,如果按照上面的步驟做的話佩微,最后的Log應(yīng)該是這樣的:


log after add feature-3 on dev

重點(diǎn)來了缝彬,老板說了,新開發(fā)的功能3不喜歡哺眯,需要?jiǎng)h除了功能3谷浅,咋辦呢?

這里就需要講到Git的回退了,在Android Studio中提供了兩種回退的方式:Git revert以及Git reset一疯。

Git revert

Git revert可以將版本回退到上一步撼玄,但是會(huì)新增一個(gè)提交,他的流程就像下面這幅圖一樣:

git_revert_picture_2

1.首先打開Log墩邀,找到功能3的提交掌猛,右鍵選擇復(fù)制哈希碼(Copy Revision Number),如下圖所示:
Copy Revision Number

2.打開Android Studio的終端Terminal眉睹,他就在Version Control的旁邊荔茬,之后輸入以下命令按回車鍵:

git revert 9c834d8c66598fb132a0cc8e4c1f8c341d058f3e

那一段很復(fù)雜的數(shù)字字母就是我們剛才復(fù)制的哈希碼

如下圖所示:

git revert on terminal

3.之后終端會(huì)列出此次提交的具體信息,如果確認(rèn)要回退竹海,請(qǐng)輸入:q保存此次操作并且退出會(huì)話
現(xiàn)在你可以看到慕蔚,他確實(shí)增加了一次提交,并且回到了上一版的內(nèi)容斋配,Log應(yīng)該是這樣的:

log after revert

Git reset

相比之下孔飒,Git reset就要干脆的多,與Git revert的功能一樣艰争,它也可以將代碼恢復(fù)到上一個(gè)版本坏瞄,但是不會(huì)新增一次提交,他的流程如下:


git_reset_picture_3

因?yàn)槲覀冃枰獎(jiǎng)h除功能3园细,并且讓Log看起來并沒有revert的這一次提交惦积,所以我們應(yīng)該在dev分支上后退兩步,確實(shí)是這樣的對(duì)吧猛频!

1.點(diǎn)擊菜單欄上的VCS-->Git-->Reset HEAD狮崩,打開對(duì)話框,在To Commit文本框中輸入HEAD~2鹿寻,就像下圖這樣:

reset HEAD

reset HEAD~2

2.點(diǎn)擊Reset按鈕之后睦柴,你可以發(fā)現(xiàn)Log變了,變回原來那個(gè)熟悉的畫面了:
log after reset

master分支上被修改了

突然你發(fā)現(xiàn)你的同事在master分支上提交了兩次毡熏,分別是增加了功能1和功能4坦敌,但是其中的功能1很顯然HelloWorld被寫成了WorldHello,例如這樣的:

 /**
     * feature-1
     * display WorldHello
     * @param view
     */
    public void feature1(View view) {
        btn_feature_1.setText(R.string.feature_1_dis);
    }

    /**
     * feature-4
     * display Hello
     * @param view
     */
    public void feature4(View view) {
        btn_feature_4.setText(R.string.feature_4_dis);
    }

提交更改痢法,之后Log應(yīng)該是這樣的:


log after add feature-1&4 on master

我們依舊用演示圖表示當(dāng)前分支的發(fā)展情況:


branch_picture_4

Rebase

老板說了狱窘,master分支只要功能4不需要功能1,而dev分支上的功能1财搁、2全部都要合并到master分支上蘸炸。那么這個(gè)時(shí)候我們就可以使用rebase了。
git rebase用于把一個(gè)分支的修改合并到當(dāng)前分支〖獗迹現(xiàn)在我們切換到master分支搭儒,將dev上的做修改加入到master中穷当,所以我們選擇rebase,在Android Studio中提供了功能十分強(qiáng)大的rebase淹禾。

1.點(diǎn)擊菜單欄上的VCS-->Git-->Rebase馁菜,如下圖所示:

git rebase

2.在彈出的對(duì)話框中,我們?cè)贠nto的下拉欄中選中dev分支铃岔,表示我們需要將master分支rebase到該分支下汪疮。
git rebase branch

3.點(diǎn)擊Rebase之后,你會(huì)發(fā)現(xiàn)Android Studio彈出對(duì)話框毁习,顯示master分支的兩次提交铲咨,需要我們做出選擇,如下圖所示:
git start rebasing

4.因?yàn)槲覀儾恍枰猰aster分支上的功能1但是需要功能4蜓洪,所以在功能1的提交上我們選擇skip(跳過這個(gè)提交)纤勒,在提交4上選擇pick(挑選此次這個(gè)提交),點(diǎn)擊 Start Rebasing隆檀,我們可以看到又有對(duì)話框彈出摇天,此次是讓我們對(duì)每個(gè)文件進(jìn)行挑選,如下圖所示:
rebase conflict

5.對(duì)于每一個(gè)文件恐仑,你可以選擇接受你的那一部分泉坐,或者接受另一只分支上的內(nèi)容,又或者你可以點(diǎn)擊Merge對(duì)文件進(jìn)行篩選裳仆。我們點(diǎn)擊Merge按鈕腕让,可以看到有三個(gè)文件呈現(xiàn)在屏幕上。其中中間的文件是最后的結(jié)果歧斟,左邊的為當(dāng)前分支master分支纯丸,右邊的為dev分支,你還可以發(fā)現(xiàn)在修改過的每一行中都存在一個(gè)X >>符號(hào)静袖,點(diǎn)擊X表示不需要這一行的修改觉鼻,點(diǎn)擊>>表示接受這一行的修改,我們甚至還可以像在編輯器中那樣復(fù)制队橙、粘貼坠陈、編輯內(nèi)容,我們最終作出的選擇如下圖所示捐康,之后可以點(diǎn)擊Apply進(jìn)行保存仇矾,如果你不想保存,那就點(diǎn)擊Abort終止此次修改:
conflict between files

6.對(duì)于剩下的兩個(gè)文件也做相同的處理解总,之后我們可以看到master分支已經(jīng)有了dev分支的功能1和功能2和自身的功能4贮匕,并且去掉了自己之前的功能1,可以看一下Log倾鲫,如下所示:

log after rebase

我們依舊使用演示圖來表示最后的分支情況:
branch_picture_5

推送到遠(yuǎn)程倉(cāng)庫(kù)

推送很簡(jiǎn)單粗合,你可以導(dǎo)航到菜單欄VCS-->Import Into Version Control -->Share Project on Github,如下圖所示:

push

在彈出的對(duì)話框中填寫遠(yuǎn)程倉(cāng)庫(kù)的名稱乌昔,點(diǎn)擊Share:
share

之后你就可以在你的Github上面看到這一次的推送了隙疚。

本地所做的修改如何同步到遠(yuǎn)程倉(cāng)庫(kù)

現(xiàn)在我需要在工程中加入一些文件,例如說我新建了一個(gè)screenshots文件夾磕道,并在其中添加了這篇文章需要用到的截圖供屉,那么如何將這些文件一起同步到遠(yuǎn)程倉(cāng)庫(kù)呢?其實(shí)很簡(jiǎn)單溺蕉。

1.使用快捷鍵Alt+9或者點(diǎn)擊工具按鈕打開Version Control伶丐,右鍵Unversioned Files,選擇Git-->Add疯特,將所有文件加入Git中哗魂,如下圖:

add files

2.右鍵Default,選擇Commit所有的文件之后填寫提交信息漓雅,如下圖:
commit files

3.使用快捷鍵Ctrl+Shift+K或者右鍵工程根目錄录别,選擇push項(xiàng)目,如下圖所示:
push project

4.在彈出的對(duì)話框中點(diǎn)擊Push按鈕邻吞,就可以將所做的修改同步到遠(yuǎn)程倉(cāng)庫(kù)了组题,如下圖:
push!

5.對(duì)于修改過的文件想要同步到遠(yuǎn)程倉(cāng)庫(kù),按照同樣的步驟就行了抱冷,這里不再贅述了崔列。

后記

這篇文章有點(diǎn)長(zhǎng),圖也很多旺遮,我也寫了很久赵讯,有的時(shí)候思路不清晰也混了(尷尬臉),所以難免會(huì)有錯(cuò)誤耿眉,還請(qǐng)大家批評(píng)指正瘦癌,大家互相學(xué)習(xí),希望你能夠?qū)W到更多Android Studio的知識(shí)跷敬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讯私,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子西傀,更是在濱河造成了極大的恐慌斤寇,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拥褂,死亡現(xiàn)場(chǎng)離奇詭異娘锁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)饺鹃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門莫秆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來间雀,“玉大人,你說我怎么就攤上這事镊屎∪切” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵缝驳,是天一觀的道長(zhǎng)连锯。 經(jīng)常有香客問我,道長(zhǎng)用狱,這世上最難降的妖魔是什么运怖? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮夏伊,結(jié)果婚禮上摇展,老公的妹妹穿的比我還像新娘。我一直安慰自己溺忧,他們只是感情好吗购,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砸狞,像睡著了一般捻勉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刀森,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天踱启,我揣著相機(jī)與錄音,去河邊找鬼研底。 笑死埠偿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榜晦。 我是一名探鬼主播冠蒋,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼乾胶!你這毒婦竟也來了抖剿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤识窿,失蹤者是張志新(化名)和其女友劉穎斩郎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喻频,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缩宜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锻煌。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妓布,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宋梧,到底是詐尸還是另有隱情匣沼,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布乃秀,位于F島的核電站,受9級(jí)特大地震影響圆兵,放射性物質(zhì)發(fā)生泄漏跺讯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一殉农、第九天 我趴在偏房一處隱蔽的房頂上張望刀脏。 院中可真熱鬧,春花似錦超凳、人聲如沸愈污。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)暂雹。三九已至,卻和暖如春创夜,著一層夾襖步出監(jiān)牢的瞬間杭跪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工驰吓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涧尿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓檬贰,卻偏偏與公主長(zhǎng)得像姑廉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子翁涤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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