源代碼的管理(svn & git)

&開發(fā)過程中離不開源代碼的管理,

目地:為了解決在軟件開發(fā)過程中吃沪,由源代碼引發(fā)的各種蛋疼爆哑、繁瑣的問題。

目前開發(fā)使用較廣的版本控制系統(tǒng)「Git & SVN」橡疼,后續(xù)會(huì)單開一篇總結(jié)正在使用的【強(qiáng)大的 Git 客戶端:SourceTree】援所。

本篇文章主要從使用者角度【Git & SVN 詳解使用】學(xué)習(xí)總結(jié)。

在「時(shí)間 & 知識(shí) 」有限內(nèi)欣除,總結(jié)的文章難免有「未全住拭、不足 」的地方,還望各位好友指出

目錄:

源代碼管理認(rèn)知

源代碼管理 SVN 詳解使用

SVN 基礎(chǔ)知識(shí)概念

2.SVN 客戶端實(shí)用命令

3.SVN 客戶端實(shí)用示例

4.「SVN–>branch & tag」分支和標(biāo)簽

5.SVN ST 顯示的文件狀態(tài)

源代碼管理 Git 詳解使用

1.Git基礎(chǔ)知識(shí)概念

2.Git 幾個(gè)核心概念

3.Git 工作原理 / 流程

4.Git 客戶端實(shí)用命令

5.「Git–>branch & tag & remote」分支、標(biāo)簽和遠(yuǎn)程

6.Git 客戶端實(shí)用示例

SVN & Git 兩者比較

碼農(nóng)們踩過的坑整理(持續(xù)~)

源代碼管理認(rèn)知

下面簡(jiǎn)單幾點(diǎn)總結(jié)滔岳,來給初學(xué)者快速對(duì)源代碼管理有個(gè)認(rèn)知瘟檩;

為什么會(huì)出現(xiàn)源代碼管理工具 ?

為了解決在軟件開發(fā)過程中澈蟆,由源代碼引發(fā)的各種蛋疼、繁瑣的問題卓研。

源代碼會(huì)引發(fā)哪些問題 趴俘?

無法后悔:做錯(cuò)了一個(gè)操作后,某些情況下無法返回奏赘,沒有后悔藥可以吃寥闪。

版本備份:費(fèi)空間、費(fèi)時(shí)間磨淌。

版本混亂:因版本備份過多造成混亂疲憋,難于找回正確的想要的版本。

代碼沖突:多人操作同一個(gè)文件(團(tuán)隊(duì)開發(fā)中的常見問題)梁只。

權(quán)限控制:無法對(duì)源代碼進(jìn)行精確的權(quán)限控制缚柳。

追究責(zé)任:出現(xiàn)了嚴(yán)重的 BUG,無法定位到負(fù)責(zé)人搪锣,容易耍賴秋忙。

源代碼管理工具的作用是 ?

能追蹤一個(gè)項(xiàng)目從誕生一直到定案的過程构舟。

記錄一個(gè)項(xiàng)目的所有內(nèi)容變化灰追。

方便地查閱特定版本的修訂情況。

溫馨提示:

如果是團(tuán)隊(duì)開發(fā)狗超,使用源代碼管理工具是強(qiáng)制性的弹澎!

如果是單人開發(fā),也強(qiáng)烈建議現(xiàn)在就開始使用源代碼管理工具努咐。

源代碼管理 SVN 詳解使用

基礎(chǔ)知識(shí)概念

SVN是集中式控制系統(tǒng)苦蒿,需要一個(gè)中央服務(wù)器。

Repository代碼倉庫麦撵,保存代碼的倉庫刽肠。

Server服務(wù)器,保存所有版本的代碼倉庫免胃。

Client客戶端音五,只保存當(dāng)前用戶的代碼倉庫。

用戶名&密碼訪問代碼倉庫需要使用自己的 “用戶名和密碼”羔沙,從而可以區(qū)分出不同的人對(duì)代碼做的修改躺涝。

SVN 客戶端實(shí)用命令

svn checkout「簡(jiǎn)寫svn co」:將服務(wù)器上最新的代碼倉庫下載到本地(只需要做一次)。

svn update「簡(jiǎn)寫svn up」:從服務(wù)器上將其他人所做的修改下載到本地 (每天上班必須要做的事情)。

svn commit「簡(jiǎn)寫svn ci」:將改動(dòng)的文件提交到服務(wù)器(每天下班之前至少做一次)坚嗜。

svn add:向本地的版本控制庫中添加新文件夯膀。

svn delete、svn remove「簡(jiǎn)寫svn del苍蔬、svn rm」:從本地的版本控制庫中刪除文件诱建。

svn move:移動(dòng)文件或者目錄或文件更名

svn mkdir:創(chuàng)建納入版本控制下的新目錄

svn revert:撤銷之前的一切修改

svn merge:將兩個(gè)版本之間的差異合并到當(dāng)前文件

svn info:查看文件的詳細(xì)信息。

svn diff:查看不同版本的區(qū)別碟绑。

svn log:查看日志信息俺猿。

svn list:列出版本庫下的文件和目錄列表。

svn status「簡(jiǎn)寫svn st」:查看文件狀態(tài)格仲。

svn help:獲取幫助信息(比如 svn help ci)押袍。

svn lock:加鎖。

svn unlock:解鎖凯肋。

SVN 客戶端實(shí)用示例

檢出

去到公司的第一天谊惭,將項(xiàng)目檢出(下載)至本地。

svn checkout URL[PATH]

svn co URL[PATH]

注意

這里的中括號(hào)[ ]代表可選(可以省略)侮东。

URL:代碼倉庫的遠(yuǎn)程地址圈盔。

[PATH]:將代碼下載到本地的哪個(gè)路徑(如果省略本地的路徑,就下載到命令行當(dāng)前所在的路徑)悄雅。

提交

將改動(dòng)過的舊文件提交至服務(wù)器药磺。

svn commit-m "注釋"[PATH]

svn ci-m "注釋"[PATH]

注意

一定要養(yǎng)成寫注釋的良好習(xí)慣。

“注釋”:”修改了User.m文件”煤伟。

[PATH]:代表是 提交哪個(gè)文件到服務(wù)器(如果省略路徑癌佩,就將命令行所在路徑中所有改動(dòng)過的文件提交到服務(wù)器)。

添加

提交一個(gè)新建的文件到服務(wù)器便锨,需要2個(gè)步驟围辙。

添加新建的文件到本地的版本控制庫中:svn add。

提交剛才的添加操作到服務(wù)器:svn commit放案。

將文件添加到本地的版本控制庫姚建。

svn add PATH

PATH:代表是 添加哪個(gè)文件到版本控制庫中。

刪除

刪除服務(wù)器上的某個(gè)舊文件吱殉,需要做2個(gè)步驟掸冤。

將文件從本地的版本控制庫中移除:svn delete、svn remove友雳。

提交剛才的刪除操作到服務(wù)器:svn commit稿湿。

將文件從本地的版本控制庫中移除。

svn delete PATH

PATH:代表是 將哪個(gè)文件從版本控制庫中移除押赊。

更新

將服務(wù)器上其他同事提交的饺藤,最新代碼更新到本地。

svn update [PATH]

PATH:代表是 更新哪個(gè)文件的內(nèi)容(如果省略路徑,就更新命令行所在路徑的所有內(nèi)容)涕俗。

回滾

改動(dòng)沒有被提交罗丰。

這種情況下,使用svn revert就能取消之前的修改再姑。當(dāng)為單個(gè)文件時(shí)萌抵,直接svn revert 文件就行了;當(dāng)為目錄時(shí)元镀,需要加上參數(shù)-r (Recursive,遞歸)谜嫉,否則只會(huì)將改文件這個(gè)目錄的改動(dòng)。

改動(dòng)已經(jīng)被提交凹联。

這種情況下,用svn merge命令來進(jìn)行回滾哆档。先運(yùn)行svn up保證拿到最新的版本蔽挠,然后svn log查看并找到要回滾的版本號(hào),如果想要更詳細(xì)的了解情況瓜浸,可以使用svn diff -r HEAD:2500 [文件](回滾到版本號(hào)2500)澳淑,此處的[ ]可以是文件、目錄或整個(gè)項(xiàng)目插佛。

「SVN–>branch & tag」分支和標(biāo)簽

SVN官方推薦在一個(gè)版本庫的根目錄下先建立trunk杠巡、branches、tags這三個(gè)文件夾雇寇,其中trunk是開發(fā)主干氢拥,存放日常開發(fā)的內(nèi)容;branches存放各分支的內(nèi)容锨侯,比如為不同客戶定制的不同版本嫩海;tags存放某個(gè)版本狀態(tài)的標(biāo)簽。

branhces和tags本質(zhì)沒有區(qū)別囚痴,都是通過svn copy方式建立的叁怪,差異在于通常branches中的內(nèi)容是需要繼續(xù)修改或開發(fā)的,tags中的內(nèi)容是存放不再修改的深滚,這一般通過權(quán)限設(shè)置來解決奕谭,tags通常只給管理員開放寫權(quán)限。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

171.新建分支

svncopymaster_repository_url branch_repository_url -m"your comments"

2.新建空白分支

svn mkdir branch_repository_url

3.刪除分支

svn rm branch_repository_url -m"your comments"

4.新建tag

svncopymaster_repository_url tag_repository_url -m"your comments"

5.刪除tag

svn rm tag_repository_url -m"your comments"

6.查看branches

svn ls ^/branches --verbose

分支與主干的合并:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20# 分支合到主干 cd trunk

svn merge -r : svn://branch/path

# 分支當(dāng)前版本為4847痴荐,想把4825到4847間的改動(dòng)merge到主干

# cd trunk

svn merge -r4825:4847svn://branch/path

svn ci -m"merge branch changes r4835:4847 into trunk"

# 主干合到分支 cd branch

# 在r23創(chuàng)建了一個(gè)分支血柳,trunk版本號(hào)更新到了25,想把23-25之間的改動(dòng)merge到分支

svn merge -r23:25svn://trunk/path

svn ci -m"merge trunk changes r23:25 into my branch"

# cd trunk

# 查看當(dāng)前Branch中已經(jīng)有那些改動(dòng)已經(jīng)被合并到Trunk中

svn mergeinfo svn://branch/path

# cd trunk

# 查看Branch中那些改動(dòng)還未合并

svn merginfo svn://branch/path --show-revs eligible

merge分支B到分支A

1

2

3

4

5step1: Checkout URL A

# cd branch A

step2: merge URL B to your workingcopyof A

svn merge -r10:HEAD http://branch-b .

step3: Commit A

沖突提示

1

2

3

4

5

6(p) postpone? ? ? ? ? 暫時(shí)推后處理生兆,我可能要和那個(gè)和我沖突的家伙商量一番

(df) diff-full? ? ? ? 把所有的修改列出來混驰,比比看

(e) edit? ? ? ? ? ? ? 直接編輯沖突的文件

(mc) mine-conflict? ? 如果你很有自信可以只用你的修改,把別人的修改干掉

(tc) theirs-conflict? 底氣不足,還是用別人修改的吧

(s) show all options? 顯示其他可用的命令

SVN ST 顯示的文件狀態(tài)

' '沒有修改栖榨。

A被添加到本地代碼倉庫昆汹。

C沖突。

D被刪除婴栽。

I被忽略满粗。

M被修改。

R被替換愚争。

X外部定義創(chuàng)建的版本目錄映皆。

?文件沒有被添加到本地版本庫內(nèi)。

!文件丟失或者不完整(不是通過svn命令刪除的文件)轰枝。

~受控文件被其他文件阻隔捅彻。

U服務(wù)器收到文件更新了

G本地文件以及服務(wù)器文件都已更新,而且成功的合并了

源代碼管理 Git 詳解使用

基礎(chǔ)知識(shí)概念

git是一款開源的分布式版本控制工具。

在世界上所有的分布式版本控制工具中鞍陨,git是最快步淹、最簡(jiǎn)單、最流行的诚撵。

作者是Linux之父:Linus Benedict Torvalds缭裆。

當(dāng)初開發(fā)git僅僅是為了輔助Linux內(nèi)核的開發(fā)(管理源代碼)。

Git 幾個(gè)核心概念

工作區(qū)(Working Directory):倉庫文件夾里除.git目錄以外的內(nèi)容寿烟。

版本庫(Repository):.git目錄澈驼,用于存儲(chǔ)記錄版本信息。

暫存區(qū)(stage)

分支(master):git自動(dòng)創(chuàng)建的第一個(gè)分支筛武。

HEAD指針:用于指向當(dāng)前分支缝其。

Git 工作原理 / 流程

git add:將工作區(qū)文件修改添加到暫存區(qū)。

git commit:將暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支(提交區(qū))徘六。

git push:將提交區(qū)內(nèi)容 推送到服務(wù)器上氏淑。

git pull:從服務(wù)器上更新文件。

Git 客戶端實(shí)用命令

1.git clone:從服務(wù)器上克隆(下載)最新的代碼到本地硕噩。

2.git init:初始化本地倉庫(在當(dāng)前目錄新建代碼庫)假残,也可以git init Desktop/GitCode(在指定位置創(chuàng)建代碼庫) ,如果使用了git clone不用使用此命令炉擅。

3.git config:配置用戶名和郵箱辉懒。

1

2

3

4

5

6

7

8

9

10git config --global user.name"GO_ln"

git config --global user.email"xxx @xx.com"

```

-4.`add`:將工作區(qū)的文件提交到暫存區(qū)。

```objc

// 添加指定文件

git add GitTest/GitTest/ViewController.m

// 添加本地庫所有文件

git add .

5.git commit:提交信息谍失。

1

2

3

4

5

6

7

81.git commit -m 將暫存區(qū)的內(nèi)容提交到提交區(qū)

// 提交所有

git commit -m"日志"

// 提交某一個(gè)文件

git commit GitTest/GitTest/ViewController.m -m"修改VC"

2.把工作區(qū)中的內(nèi)容提交到暫存區(qū)并從暫存區(qū)中提交到提交區(qū)

git commit -am “提交信息”

6.git status:查看當(dāng)前 git 的狀態(tài)眶俩。

7.git push:將提交區(qū)內(nèi)容 推送到服務(wù)器上。

8.checkout:撤銷某次提交的某個(gè)文件快鱼。

1

git checkout8989920311bacb3f4e3ced7f82ab75ca47c318c7 GitTest/GitTest/ViewController.m

9.revert:撤銷某一次提交颠印。

1

git revert8989920311bacb3f4e3ced7f82ab75ca47c318c7

10.checkout HEAD:放棄本地某一文件的修改纲岭。

1

git checkout HEAD GitTest/GitTest/ViewController.m

11.git reset:回退到某個(gè)版本并保存未追蹤的改動(dòng)。(通過log來查詢)

1

git reset8989920311bacb3f4e3ced7f82ab75ca47c318c7

12.git reset --hard HEAD:放棄本地全部修改线罕。

13.git reset --keep:回退到某個(gè)版本并保存未提交的改動(dòng)止潮。

1

git reset --keep8989920311bacb3f4e3ced7f82ab75ca47c318c7

14.log:查看提交日志。

15.git show:查看每次提交的具體內(nèi)容钞楼。

16.diff:查看追蹤文件的差異喇闸。

1

2

3

4// 查看追蹤文件的差異

git diff

// 查看某一文件的差異

git diff GitTest/GitTest/ViewController.m

17.rm:刪除文件。

1

git rm GitTest/GitTest/ViewController.m

18.mv:修改某一個(gè)文件的名字询件。

1

2// 注意燃乍,路徑要對(duì)應(yīng),否則會(huì)自動(dòng)移動(dòng)

git mv GitTest/GitTest/ViewController.m GitTest/GitTest/View.m

19.blame:查看文件被誰修改宛琅。

1

git blame GitTest/GitTest/ViewController.m

「Git–>branch & tag & remote」分支刻蟹、標(biāo)簽和遠(yuǎn)程

branch:分支。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31// 查看本地分支

git branch

// 查看遠(yuǎn)程分支

git branch -r

// 查看遠(yuǎn)程和本地分支

git branch -a

// 創(chuàng)建本地分支嘿辟,但是不切換

git branch branch1

// 新建一個(gè)分支并切換

git checkout -b branch2

// 新建一個(gè)分支舆瘪,指向指定commit

git branch branch38989920311bacb3f4e3ced7f82ab75ca47c318c7

// 新建一個(gè)分支,與指定的遠(yuǎn)程分支建立追蹤關(guān)系

git branch --track branch4 origin/master

// 切換到指定分支仓洼,并更新工作區(qū)

git checkout branch4

// 切換到上一個(gè)分支

git checkout -

// 建立追蹤關(guān)系,在現(xiàn)有分支與指定的遠(yuǎn)程分支之間

git branch --set-upstream branch3 origin/master

// 合并指定分支到當(dāng)前分支

git merge branch2

// 選擇一個(gè)commit堤舒,合并進(jìn)當(dāng)前分支

git cherry-pick8989920311bacb3f4e3ced7f82ab75ca47c318c7

// 刪除分支

git branch -d branch1

// 刪除遠(yuǎn)程分支

git push origin --delete branch1

git branch -dr branch1

// 將當(dāng)前分支push到指定遠(yuǎn)程分支

git push origin HEAD:branch1

tag:標(biāo)簽色建。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16// 列出所有tag

git tag

// 新建一個(gè)tag在當(dāng)前commit

git tag1

// 新建一個(gè)tag在指定commit

git tag28989920311bacb3f4e3ced7f82ab75ca47c318c7

// 刪除本地tag

git tag -d1

// 查看tag信息

git show2

// 提交所有tag

git push --tags

// 刪除遠(yuǎn)程tag

git push origin --delete tag2

// 新建一個(gè)分支,指向某個(gè)tag

git checkout -b [branch] [tag]

remote:遠(yuǎn)程舌缤。

1

2

3

4

5

6

7

8

9

10

11

12// 查看遠(yuǎn)程庫的地址列表

git remote -v

// 查看這個(gè)遠(yuǎn)程庫的信息

git remote show origin

// 從遠(yuǎn)程庫更新所有的信息到本地箕戳,但是不合并

git fetch origin

// 從遠(yuǎn)程庫更新所有的信息到本地,但是不合并并清理已刪除的遠(yuǎn)程分支

git fetch -p origin

// 從遠(yuǎn)程庫更新數(shù)據(jù)并立即合并數(shù)據(jù)

git pull origin branch1

// 將本地?cái)?shù)據(jù)同步到遠(yuǎn)程庫中

git push origin? branch1

Git 客戶端實(shí)用示例

1国撵、示例:將本地代碼提交到 GitHub 上陵吸。

前期準(zhǔn)備:

cd Desktop/git(桌面文件夾)

git clone https://github.com/CustomPBWaters/liunDemo.git(倉庫的URL)

cd liunDemo(github上建的文件夾) 把要上傳的Demo放到建的桌面 git 文件夾里。

ls -a會(huì)提示下步操作介牙。

git commit -am CoreDataDemo壮虫,這里的CoreDataDemo是我本地的Demo。

1

2git add CoreDataDemo? 把工作區(qū)的內(nèi)容提交到暫存區(qū)

git commit -m CoreDataDemo? 把暫存區(qū)中的內(nèi)容提交到提交區(qū)

git status查看提交狀態(tài)环础。

這時(shí)第一次提交囚似,會(huì)讓輸入GitHub用戶名密碼。

git push將文件推送到服務(wù)器上线得。

注意:要傳得Demo項(xiàng)目中饶唤,有的含隱藏文件.git,需要?jiǎng)h除 rm -rf .git贯钩,再上傳就可以了募狂。

2办素、示例:解決沖突(手動(dòng)解決)。

打開沖突文件祸穷,刪除<<<<<<< HEAD ======= >>>>>>> branch1這三行

再修改成想要的性穿,添加,提交即可粱哼。

SVN & Git 兩者比較

SVN & Git特點(diǎn)

結(jié)構(gòu)(最主要的區(qū)別)

SVN是集中式管理季二,Git是分布式管理

速度

在很多情況下,git的速度遠(yuǎn)遠(yuǎn)比SVN快

難度

SVN功能簡(jiǎn)單揭措,指令簡(jiǎn)單胯舷,入門容易。Git功能完善绊含,指令復(fù)雜桑嘶,入門簡(jiǎn)單掌握難

其他

SVN使用分支比較笨拙,git可以輕松擁有無限個(gè)分支

SVN必須聯(lián)網(wǎng)才能正常工作躬充,git支持本地版本控制工作

舊版本的SVN會(huì)在每一個(gè)目錄置放一個(gè).svn逃顶,git只會(huì)在根目錄擁有一個(gè).git

補(bǔ)充

集中式版本控制

在分布式下開發(fā)者可以本地提交。

每個(gè)開發(fā)者機(jī)器上都有一個(gè)服務(wù)器的數(shù)據(jù)庫充甚。

從穩(wěn)定可靠的角度來看以政,分布式肯定是更好的選擇。

總結(jié)

這兩個(gè)版本控制一直持續(xù)到現(xiàn)在伴找,兩者都有其優(yōu)點(diǎn)和缺點(diǎn)盈蛮。

個(gè)人認(rèn)為兩者沒有絕對(duì)的優(yōu)勢(shì),能夠取代另一方技矮。

但是從功能上來講抖誉,Git 擁有SVN大致所有的功能,還擁有更多可靠衰倦,便捷袒炉,個(gè)性化的指令方便操作。

就剩最后一句話了樊零,沒錯(cuò)我磁,想要復(fù)雜的功能,就要承受學(xué)習(xí)的代價(jià)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末驻襟,一起剝皮案震驚了整個(gè)濱河市十性,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌塑悼,老刑警劉巖劲适,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異厢蒜,居然都是意外死亡霞势,警方通過查閱死者的電腦和手機(jī)烹植,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愕贡,“玉大人草雕,你說我怎么就攤上這事」桃裕” “怎么了墩虹?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)憨琳。 經(jīng)常有香客問我诫钓,道長(zhǎng),這世上最難降的妖魔是什么篙螟? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任菌湃,我火速辦了婚禮,結(jié)果婚禮上遍略,老公的妹妹穿的比我還像新娘惧所。我一直安慰自己,他們只是感情好绪杏,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布下愈。 她就那樣靜靜地躺著,像睡著了一般蕾久。 火紅的嫁衣襯著肌膚如雪势似。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天腔彰,我揣著相機(jī)與錄音叫编,去河邊找鬼辖佣。 笑死霹抛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卷谈。 我是一名探鬼主播杯拐,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼世蔗!你這毒婦竟也來了端逼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤污淋,失蹤者是張志新(化名)和其女友劉穎顶滩,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寸爆,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡礁鲁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年盐欺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仅醇。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冗美,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析二,到底是詐尸還是另有隱情粉洼,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布叶摄,位于F島的核電站属韧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏准谚。R本人自食惡果不足惜挫剑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柱衔。 院中可真熱鬧樊破,春花似錦、人聲如沸唆铐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艾岂。三九已至顺少,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間王浴,已是汗流浹背脆炎。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氓辣,地道東北人秒裕。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像钞啸,于是被迫代替她去往敵國(guó)和親几蜻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • 源代碼管理工具的起源 為什么會(huì)出現(xiàn)源代碼管理工具体斩? 為了解決在軟件開發(fā)過程中梭稚,由源代碼引發(fā)的各種蛋疼繁瑣問題 源代...
    小白文_Vincent閱讀 3,156評(píng)論 2 8
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,649評(píng)論 4 54
  • HIVE是一個(gè)基于Hadoop的數(shù)據(jù)倉庫絮吵,適用于一些高延遲性的應(yīng)用弧烤。如果對(duì)延遲性要求比較高,則可以選擇Hbase蹬敲。...
    夏無憂陽閱讀 5,019評(píng)論 0 12
  • 在viewDidLoad中創(chuàng)建輸入框 然后監(jiān)聽鍵盤的彈出 在cellForRow中創(chuàng)建cell且綁定cell的ta...
    光武帝閱讀 1,119評(píng)論 2 3
  • sleep使線程休眠暇昂,另一個(gè)線程可以調(diào)用sleep線程的interrupt中斷它的休眠想幻。 結(jié)束休眠狀態(tài)有兩種途徑:...
    liuweiiii閱讀 705評(píng)論 0 0