Git常用命令手冊


Git常用命令手冊

閱讀前說明

本手冊總結了Git的常用命令镶殷,目的是方便平時使用Git可視化工具管理代碼的同事學習和查詢命令行下Git的命令痴鳄,一些不常用的高級用法并沒有寫入

符號說明

  • 中括號 []

本文中使用中括號 [] 表示要自定義輸入的內容,例如git add [test.text]表示在命令行中輸入git add test.text

Git基礎操作

Git倉庫創(chuàng)建

有兩種創(chuàng)建Git項目倉庫的方法忿晕,第一種是在現存的目錄下盅抚,通過導入所有文件來創(chuàng)建新的 Git 倉庫房待。第二種是從已有的 Git 倉庫克隆出一個新的鏡像倉庫。

  1. 在已有的工作目錄中創(chuàng)建Git倉庫:

打開命令行嚼酝,輸入

cd [需要創(chuàng)建Git倉庫的文件夾路徑]

移動到需要使用Git管理的目錄下浮还,可以直接將文件夾拖入命令行窗口快速輸入路徑,然后再輸入

git init

在當前目錄下會出現一個名為 .git 的目錄闽巩,所有 Git 需要的數據和資源都存放在這個目錄中钧舌。不過目前,僅僅是按照既有的結構框架初始化好了里邊所有的文件和目錄涎跨,但我們還沒有開始跟蹤管理項目中的任何一個文件洼冻。

如果當前目錄下有幾個文件想要納入版本控制,需要先用

git add [fileName]

命令告訴 Git 開始對名字為fileName文件進行跟蹤隅很,也可以輸入

git add .

對該文件夾下的所有文件進行跟蹤

然后

git commit -m [initial project version]

提交這次改動撞牢,所有被跟蹤的文件就被記錄進Git的數據庫中。

  1. 從現有倉庫克隆:
    假設某項目在GitHub上的倉庫地址為URL普泡,輸入

git clone [URL]

如果希望在克隆的時候播掷,自己定義要新建的項目目錄名稱,可以在上面的命令末尾指定新的名字

git clone [URL] [myProject]

新建的目錄名字會變成myProject撼班。

Git 支持多種數據傳輸協議歧匈。之上面的例子使用的是 git:// 協議,也可以用 http(s):// 或者 user@server:/path.git 表示的 SSH 傳輸協議砰嘁。

Git的工作流程

上一步我們已經創(chuàng)建了一個Git倉庫件炉,并將一些文件加入了跟蹤列表,在進行下一步操作之前矮湘,我們有必要了解一下Git的工作流程:

image

我們創(chuàng)建Git倉庫的目錄叫做工作目錄斟冕,工作目錄下面的所有文件處于兩種狀態(tài):已跟蹤或未跟蹤。已跟蹤的文件指使用git add命令加入版本控制管理的文件缅阳,工作一段時間后磕蛇,它們的狀態(tài)可能是未更新,已修改或者已放入暫存區(qū)十办。而沒有加版本控制管理入都屬于未跟蹤文件秀撇。初次克隆某個倉庫時,工作目錄中的所有文件都屬于已跟蹤文件向族,且狀態(tài)為未修改呵燕。

在編輯過某些文件之后,Git將這些文件標為已修改件相。我們可以把這些修改過的文件放到暫存區(qū)域再扭,當我們使用git commit命令后暫存區(qū)的文件會被保存進數據庫,狀態(tài)變?yōu)槲葱薷囊勾#绱酥貜汀?/p>

檢查當前文件狀態(tài)

要確定哪些文件當前處于什么狀態(tài)泛范,可以用:

git status

如果是剛創(chuàng)建的倉庫,則會顯示

On branch master

nothing to commit, working directory clean

這說明現在的工作目錄是干凈的紊撕。所有已跟蹤文件在上次提交后都未被更改過罢荡。此外還表明當前目錄下沒有任何處于未跟蹤的文件,否則 Git會在這里列出來逛揩。最后該命令還顯示了當前所在的分支是 master柠傍,這是默認的分支名稱。

現在在當前目錄下創(chuàng)建一個新文件 README辩稽,保存退出后運行

git status

會看到該文件出現在未跟蹤文件列表中:

On branch master 
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)

可以看到新建的README文件出現在“Untracked files”下面惧笛。用

git add README

命令將該文件加入跟蹤后再運行

git status

會看到 README 文件已被跟蹤,并處于暫存狀態(tài)

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file:   README

加入我們對倉庫中一個叫newText.text的文件進行一些修改以后逞泄,再運行

git status

會看到

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file:   README

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

modified:   newText.text

文件 newText.text 出現在 “Changes not staged for commit” 這行下面患整,說明已跟蹤文件的內容發(fā)生了變化拜效,但還沒有放到暫存區(qū)。要暫存這次更新各谚,需要運行 git add 命令(這是個多功能命令紧憾,根據目標文件的狀態(tài)不同,此命令的效果也不同:可以用它開始跟蹤新文件昌渤,或者把已跟蹤的文件放到暫存區(qū)赴穗,還能用于合并時把有沖突的文件標記為已解決狀態(tài)等)。現在讓我們運行 git add 把newText.text 放到暫存區(qū)膀息,然后再看看 git status 的輸出

On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file:   README
modified:   newText.text

可以看出兩個文件都已經被放入了暫存區(qū)般眉,下次提交的時候會一起被寫入數據庫。

提交修改

在我們新增潜支、修改文件后甸赃,使用

git commit -m [initial project version]

命令提交修改,initial project version是提交時的說明冗酿,在這里寫明做了什么修改埠对,方便自己和別人過后查看代碼。

提交代碼之前必須先用add命令將修改后的文件加入暫存區(qū)裁替,如果想跳過這一步项玛,也可以使用

git commit -am [initial project version]

或者

git commit -a -m [initial project version]

來直接提交改動,這樣會直接將已經加入跟蹤的并且發(fā)生了改動的文件先加入暫存區(qū)然后提交胯究,省略了add步驟稍计。

設置忽略目錄

有時會有些文件我們不希望納入Git的管理躁绸,也不希望它們總出現在未跟蹤文件列表裕循,比如日志文件、配置文件等净刮。我們可以在倉庫的根目錄下使用

touch .gitignore

創(chuàng)建一個名為 .gitignore的文件剥哑,然后使用

echo ["rule"]>>.gitignore

向.gitignore文件中寫入要忽略的文件的規(guī)則,其中rule是字符串例如:

echo *.[oa]>>.gitignore

表示忽略所有以 .o 或 .a 結尾的文件

echo *~>>.gitignore

表示忽略所有以波浪符(~)結尾的文件
新增了.gitignore文件后也需要進行提交淹父。

有些時候株婴,你想添加一個文件到Git,但發(fā)現添加不了暑认,原因可能是這個文件被.gitignore忽略了困介,如果你確實想添加該文件,可以用

git add -f [App.class]

強制添加App.class這個文件到Git蘸际,如果你想知道是哪一個規(guī)則限制了添加座哩,可以使用

git check-ignore -v App.class

來檢查,git會輸出信息表明是第幾行規(guī)則忽略了該文件粮彤。

查看已暫存和未暫存的更新

git status的顯示的信息比較簡單根穷,僅僅是列出了修改過的文件姜骡,如果要查看具體修改了什么地方,可以用

git diff

來查看當前工作目錄中當前文件和暫存區(qū)域快照之間的差異屿良,也就是修改之后還沒有暫存起來的變化內容圈澈,注意git diff只是顯示還沒有暫存起來的改動,而不是這次工作和上次提交之間的差異尘惧。所以暫存了所有更新過的文件后康栈,運行 git diff 是什么都沒有的。

查看暫存區(qū)文件與上次提交后的變化喷橙,可以使用

git diff --cached

查看兩次commit之間的變化谅将,可以使用

git diff [commit_id1] [commit_id2]

比較工作區(qū)與最新本地版本庫,可以使用

git diff HEAD

比較工作區(qū)與指定commit-id的差異重慢,可以使用

git diff [commit_id1]

撤銷操作

有時候我們提交完了才發(fā)現漏掉了幾個文件沒有加饥臂,或者提交信息寫錯了。想要撤消剛才的提交操作似踱,可以使用--amend選項重新提交隅熙,如果只是想提交修改信息,則只需要輸入

git commit --amend

輸入指令后將會彈出文本編輯器核芽,可以看到上一次提交的說明囚戚,按shift + i組合鍵進入編輯模式可以修改提交信息,修改完成后按esc退出編輯模式轧简,再按shift + :組合鍵驰坊,輸入wq,回車保存改動哮独,提交說明就會被修改拳芙。

如果不是只修改說明而是想要補上其他的改動,則可以將其他改動先暫存皮璧,然后在提交的時候帶上--amend:

git commit -m 'initial commit'

git add forgotten_file

git commit --amend

這樣會將第二次提交和第一次提交合并舟扎,最終只產生一個提交。

如果我們將某個文件誤加入了暫存區(qū)悴务,可以使用

git reset HEAD <fileName>

將名為fileName的文件移出暫存區(qū)睹限,這個文件將會回到已修改未暫存的狀態(tài)。

如果我們想放棄改動將某個文件返回修改前的狀態(tài)讯檐,可以使用

git checkout -- <fileName>

將名為fileName的文件恢復成未修改的狀態(tài)羡疗,這個操作將會清空所有已經修改,需要謹慎操作别洪。

在Git中所有已經提交過的改動都可以被恢復叨恨,即便在已經刪除的分支中的提交,或者用 --amend 重新改寫的提交蕉拢,沒有提交過的的改動無法恢復特碳,對Git 來說它們就像從未存在過一樣诚亚。

標簽操作

Git可以對某一時間點上的版本打上標簽,方便未來某個時間能回退到打標簽時刻的狀態(tài)
要列出所有tag:

git tag

顯示的標簽按字母順序排列午乓,標簽太多的時候我們可以用特定的搜索模式列出符合條件的標簽

git tag -l 'v1.4.2.*'

只顯示v1.4.2系列版本

Git使用的標簽有兩種類型:輕量級的(lightweight)和含附注的(annotated)站宗。輕量級標簽就像是個不會變化的分支,實際上它就是個指向特定提交對象的引用益愈。而含附注標簽梢灭,實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和信息蒸其,包含著標簽的名字敏释,電子郵件地址和日期,以及標簽說明摸袁,在這里只舉例輕量級標簽的使用方法:

git tag v1.4

則打上了V1.4的標簽

Git分支操作

創(chuàng)建切換新分支

git branch testing

可以新建一個名為testing的新分支钥顽,但是不會自動切換到該分支,要切換到該分支:

git checkout testing

也可以使用

git branch -b testing

一步完成創(chuàng)建和切換工作靠汁。

在切換分支的時候蜂大,如果暫存區(qū)或者工作目錄里還沒有提交的修改和你即將檢出的分支會產生沖突,Git會阻止你切換分支蝶怔,此時可以使用

git stash

將這些內容暫存起來奶浦,切換分支或者當再回到這個分支后,使用

git stash pop

方法就會將這些內容取出到當前分支踢星。

刪除分支

如果需要刪除的分支不是當前正在打開的分支澳叉,使用branch -d直接刪除

git branch -d <branchName>

如果我們在試圖刪除一個分支時自己還沒轉移到另外的分支上,Git就會給出一個警告沐悦,并拒絕該刪除操作成洗。如果堅持要刪除該分支的話,就需要在命令中使用-D選項

git branch -D <branchName>

當我們刪除一個分支時所踊,Git只是刪除了指向相關提交的指針泌枪,但該提交對象依然會留在版本庫中概荷,如果我們知道這個分支的Hash值秕岛,那么我們可以使用

git branch <branchName> <hashValue>

來恢復這個分支,如果不知道這個分支的Hash值误证,可以使用

git reflog

來查看所有所有的commit信息继薛,包括所有branch的commit,甚至包括已經撤銷的commit

分支的合并

git checkout master

git merge fixIssue

可以將fixIssue分支合并回master分支

關于分支的合并愈捅,需要注意的是遏考,如果從master分支分離出來的分支fixIssue過后又合并進了master分支,如果此時master分支上沒有其他新增的內容的話蓝谨,合并成功后會出現Fast-forward的提示灌具,表明實際上是將master的指針快進到了fixIssue的指針處青团,如果此時master分支上已經有了其他的改動,則Git會自動生成一個新的合并提交并將master的指針指向這個提交

處理沖突

如果在不同的分支中都修改了同一個文件的同一部分則在合并時會產生沖突咖楣,提示如下:

Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

此時Git已經做了合并督笆,但是沒有提交,此時可以用git status來查看哪些文件產生了沖突:

On branch master
You have unmerged paths.
(fix conflicts and run "git commit")

Unmerged paths:
(use "git add <file>..." to mark resolution)

both modified:      index.html

no changes added to commit (use "git add" and/or "git commit -a")

包含沒有解決的沖突的文件都會被標記為unmerged狀態(tài)诱贿,從上面的結果可以看出index.html這個文件產生了沖突娃肿,用文本編輯器打開這個文件,會出現以下的內容:

<<<<<<< HEAD
var a = 1

=======

var a = 2
>>>>>>> fixIssue

Git使用=======符合將有沖突的部分分隔開

<<<<<<< HEAD
var a = 1

=======

表示當前分支的內容

=======

var a = 2
>>>>>>> fixIssue

表示合并進來的分支的內容珠十,選擇要保留的部分料扰,將<<<<<<< HEAD、=======和>>>>>>> fixIssue標記刪除焙蹭,再用git add命令將修改好的文件標記為沖突已解決并加入暫存區(qū)晒杈,然后使用git commit提交。

在我們的日常開發(fā)中孔厉,使用pull request流程來提交代碼桐智,如果提交pr的時候提示有沖突,例如想將fixIssue分支合回master烟馅,最好在本地將master分支合并進fixIssue说庭,在fixIssue中解決好沖突后,此時pr應該就會顯示沖突已經解決可以自動合并郑趁,不要在master分支上合并沖突防止出現誤操作破壞master分支刊驴。

管理分支

git branch命令除了能創(chuàng)建刪除分支,也可以查看分支的信息寡润,直接使用

git branch

會列出所有的分支清單:

iss53
* master
testing

帶*號的是當前選中的分支捆憎,也可以使用

git branch -v

來查看每個分支最后一次提交的信息

iss53   93b412c fix javascript issue
* master  7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes

還可以使用

git branch --merged

來查看哪些分支已經合并回了當前分支

iss53
* master

結果顯示iss53這個分支已經合并回了master分支,如果不是有特殊用途要保留一般可以刪除梭纹,因為這個分支的改動已經包含在master分支中躲惰,使用

git branch --no-merged

可以查看哪些分支還沒有合并進當前分支

遠程倉庫的使用

遠程分支的概念

遠程分支是本地分支在Git服務器上的對應,一般我們都是使用GitHub的Git服務器服務变抽,假如我們在GitHub上有一個倉庫础拨,當我們使用第一節(jié)提到的git clone將這個倉庫克隆到本地的話,將會在本地復制一個與遠程倉庫一樣的本地倉庫绍载,并給遠程倉庫起一個默認名字origin诡宗,假如遠程倉庫的默認分支叫master的話,將會在本地創(chuàng)建一個命名為origin/master分支击儡,但你無法在本地更改其數據塔沃,接著Git 建立一個屬于你自己的本地master分支,和origin上的master分支指向相同的位置

你不能直接修改origin/master分支的數據阳谍,但是你可以通過修改本地master分支的數據蛀柴,然后推送到遠程倉庫的方式來改變origin/master分支的數據螃概,或者通過拉取操作來把本地master分支的數據更新到和origin/master一樣

假如你在本地master分支做了些改動,與此同時其他人向origin/master推送了他們的更新鸽疾,那么服務器上的master分支就會向前推進谅年,而與此同時,你在本地的提交歷史正朝向不同方向發(fā)展肮韧。不過只要你不和服務器通訊融蹂,你的origin/master 指針仍然保持原位不會移動

推送數據到遠程分支

使用

git push origin serverfix

可以將本地的serverfix分支推送到遠程倉庫的serverfix分支上,這里是簡便寫法弄企,Git會自動將serverfix擴展為refs/heads/serverfix:refs/heads/serverfix超燃,意思是“取出我在本地的serverfix分支,推送到遠程倉庫的serverfix分支中去拘领,也可以使用

git push origin serverfix:serverfix

來達到相同效果意乓,如果想讓遠程分支和本地分支使用不同的名字,可以用

git push origin localBranchName:originBranchName

來將本地叫l(wèi)ocalBranchName的分支推送到遠程倉庫约素,在遠程倉庫上的分支名字叫originBranchName

當你運行

git fetch origin

時届良,會同步遠程服務器上的數據到本地。該命令首先找到 origin 是哪個服務器圣猎,然后從上面獲取你尚未擁有的數據士葫,更新你本地的數據庫,然后把 origin/serverfix 的指針移到它最新的位置上

需要注意的是送悔,在 fetch操作下載好新的遠程分支之后慢显,本地的serverfix分支并沒有更新,本地只是多了一個不能操作的origin/serverfix 分支欠啤,必須要在本地的serverfix分支使用

git merge origin/serverfix

命令將遠程分支的變化合并回本地分支

跟蹤遠程分支

假如遠程分支不是自己創(chuàng)建的荚藻,則需要跟蹤遠程分支,假如其他人推送了一個新分支newBranch到遠程倉庫洁段,則在調用git fetch origin時本地會出現一個origin/newBranch分支应狱,使用

git checkout -b newBranch origin/newBranch

則本地會多一個newBranch分支,此時的分支叫跟蹤分支祠丝,在跟蹤分支里輸入

git push

Git會自行推斷應該向哪個服務器的哪個分支推送數據疾呻,在這些分支里運行

git pull

會獲取所有遠程索引,并把它們的數據都合并到本地分支中來纽疟,git pull相當于git fetch和git merge的組合罐韩,在克隆倉庫時,Git通常會自動創(chuàng)建一個名為master的分支來跟蹤 origin/master污朽。這正是git push和git pull一開始就能正常工作的原因,跟蹤分支可以和遠程分支不同名:

git checkout -b anotherBranch origin/newBranch

刪除遠程分支

刪除遠程分支的命令是:

git push origin :serverfix

和推送遠程分支的區(qū)別就是本地分支的名字為空

Git進階用法

變基操作

如果有一個分支master龙考,上面有兩個提交A蟆肆、B,此時開了一個新分支new矾睦,然后在new分支上提交了一系列提交,此時master也有了新提交炎功,此時分支的情況如下圖所示:

C new
/
A---B---D master

此時如果我們將new分支合回master分支枚冗,此時會在master分支上進行一次三方合并,生成一個新的提交D'赁温,現在分支的情況如下:

C new
/     \
A---B---D--- D' master

除了merge外,還有另一種整合兩個分支的方法淤齐,就是rebase方法股囊,回到合并new到master之前,假如在new分支上執(zhí)行:

git rebase master

則分支的情況如下:

C---D’ new 
/       
A---B---D master

對master分支進行一次快進合并更啄,現在的情況如下:

C---D’ new 
/       master
A---B---D 

此時相當于new分支是在D提交之后才開出來的分支稚疹,然后再提交了C提交,然后再做了一個補丁操作祭务,再把master的指針移動到new分支指針的位置内狗。使用rebase指令后,master和直接merge在內容上沒有區(qū)別义锥。

使用變基操作一般是想要得到一個能在遠程分支上干凈應用的補丁柳沙,比如某些項目你不是維護者,但想幫點忙的話拌倍,最好用變基:先在自己的一個分支里進行開發(fā)偎行,當準備向主項目提交補丁的時候,根據最新的 origin/master進行一次變基操作然后再提交贰拿,這樣維護者就不需要做任何整合工作蛤袒,只需根據你提供的倉庫地址作一次快進合并,或者直接采納你提交的補丁膨更。實際上是把解決分支補丁同最新主干代碼之間沖突的責任妙真,化轉為由提交補丁的人來解決。

變基操作除了可以在分叉的兩個分支上進行荚守,也可以將分支上的分支rebase到主分支上珍德,假如目前的分支情況如下:

E---F anotherBranch 
/
C---D oneBranch 
/       
A---B master

使用

git rebase --onto master oneBranch anotherBranch

此時的分支狀況會變成

C---D oneBranch 
/       
A---B--C'--D'--E'--F' anotherBranch
|
master

變基操作雖然有用,但是最好是在還未同步到遠程分支的本地分支上使用矗漾,不要在遠程分支上使用锈候。

變基操作的其他用途

當我們有了數個提交之后,突然發(fā)現其中的某一個提交是錯的不想要了敞贡,或者想改變一下提交的順序的時候泵琳,可以使用

git rebase -i [commitID]

-i 的意思是interactive,交互式操作的意思,例如當我們輸入

git rebase -i HEAD~3

后获列,會出現如下的提示:

pick c24b68f3 刪除節(jié)點崩潰
pick c1049e31 修改issue1087
pick b57a1f89 修改首頁點擊router圖標數據錯誤issue

# Rebase 7a173fb4..b57a1f89 onto 7a173fb4 (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
~                                                                               
"~/Documents/mercku_ios/.git/rebase-merge/git-rebase-todo" 22L, 767C

這表明從當前指針往前數的三個提交被重新拿了出來谷市,有機會能再次提交,注釋中給出了提示pick代表使用本次提交击孩,reword表示使用這次提交但是改變提交信息迫悠,sqush表示將這次提交與上次提交合并,并能改變提交信息巩梢,drop表示丟棄這次提交创泄。
按command加i組合鍵進入編輯模式,可以修改關鍵字括蝠,修改完成以后按esc退出編輯模式鞠抑,再按command加:,輸入wq保存退出即可生效又跛。

變基操作的其他用途

在利用github實現多人合作程序開發(fā)的過程中碍拆,我們有時會出現錯誤提交的情況,此時我們希望能撤銷提交操作慨蓝,讓程序回到提交前的樣子感混,總結了兩種解決方法:回退(reset)、反做(revert)礼烈。

  1. 查看版本號:

git log

  1. 本地版本回退:

git reset --hard [commit id]

  1. 強制更新遠程

git push -f

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末弧满,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子此熬,更是在濱河造成了極大的恐慌庭呜,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犀忱,死亡現場離奇詭異募谎,居然都是意外死亡,警方通過查閱死者的電腦和手機阴汇,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門数冬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人搀庶,你說我怎么就攤上這事拐纱。” “怎么了哥倔?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵秸架,是天一觀的道長。 經常有香客問我咆蒿,道長东抹,這世上最難降的妖魔是什么蚂子? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮府阀,結果婚禮上缆镣,老公的妹妹穿的比我還像新娘芽突。我一直安慰自己试浙,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布寞蚌。 她就那樣靜靜地躺著田巴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挟秤。 梳的紋絲不亂的頭發(fā)上壹哺,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音艘刚,去河邊找鬼管宵。 笑死,一個胖子當著我的面吹牛攀甚,可吹牛的內容都是我干的箩朴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼秋度,長吁一口氣:“原來是場噩夢啊……” “哼炸庞!你這毒婦竟也來了?” 一聲冷哼從身側響起荚斯,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤埠居,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后事期,有當地人在樹林里發(fā)現了一具尸體滥壕,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年兽泣,在試婚紗的時候發(fā)現自己被綠了绎橘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡撞叨,死狀恐怖金踪,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情牵敷,我是刑警寧澤胡岔,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站枷餐,受9級特大地震影響靶瘸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一怨咪、第九天 我趴在偏房一處隱蔽的房頂上張望屋剑。 院中可真熱鬧,春花似錦诗眨、人聲如沸唉匾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巍膘。三九已至,卻和暖如春芋簿,著一層夾襖步出監(jiān)牢的瞬間峡懈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工与斤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肪康,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓撩穿,卻偏偏與公主長得像磷支,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冗锁,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • 入門配置 用戶信息git config –global user.name Jason.Zeng 設置自己的用戶名...
    Jason_Zeng閱讀 565評論 0 0
  • 前言: git的各個流程如圖 手冊內容: git init # 初始化齐唆,表示在當前文件夾建立本地版本倉庫進行版本...
    Gavininn閱讀 291評論 0 1
  • 找回來未提交的版本代碼 git reflog 我們要找回我們最晚的提交,只需要做如下操作: 查看未推送的提交版本號...
    CarlosLynn閱讀 769評論 0 2
  • 版本控制工具有很多冻河,比如 CVS箍邮、SVN[https://subversion.apache.org/]、Git[...
    越前君閱讀 408評論 0 1
  • 項目開發(fā)中叨叙,管理代碼 1.提交代碼 git add . //提交所有文件 git commit -m "此處...
    龍吟丶閱讀 254評論 0 0