Git常用終端命令

寫在前面

Git想必大家都熟悉了,由于現(xiàn)在Git的管理工具用的的確很方便,估計大家都用Git管理工具了,所以真正能夠熟練用終端敲出常用的Git命令,想必沒有多少人(當然也包括我)。

我用Git比較無規(guī)律,都是混合使用的:終端Git命令(會一些常用的) + Xcode自帶Git管理工具 + SourceTree。具體會使用哪種方式,完全看心情和操作的熟練度。

最近閑來無事(等后臺哥們的接口),索性看了下常用的Git終端命令,順便做了下筆記與大家分享,當然也方便了以后自己的查閱。

本文Git常用命令知識點基本來自“廖雪峰 ”前輩的Git教程。若對Git沒有些許的了解,只看常用命令可能對大家的幫助不是太大,所以建議大家有空的時候花點時間去看下“廖雪峰 ”前輩的Git教程,通熟易懂,相信會有所收獲。

最后,若文章有什么錯誤的地方,望評論指出。


git init

初始化一個Git倉庫:把某個目錄變成Git可以管理的倉庫

git add test.h

把文件test.h添加到倉庫

git commit -m "添加了test.h文件"

把文件提交到倉庫。(git commit命令,-m后面輸入的是本次提交的說明)

git status

查看工作區(qū)的狀態(tài)

git diff test.h

查看test.h文件修改了什么(diff--->difference)

git log

顯示從最近到最遠的提交日志。如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù)

git reset --hard HEAD^

回到上一個版本

git reset --hard HEAD^^

回到上上個版本

git reset --hard HEAD~100

回到上100個版本

git reset --hard 791c95aa44cc5540d93a146d6d341e5d38936762

根據(jù)提交的版本號進行版本的回退

git reflog

查看命令歷史,以便確定要回到未來的哪個版本。

git checkout -- readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態(tài)。

git reset HEAD 文件

例如: git reset HEAD readme.txt
可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)。若要丟棄工作區(qū)的修改,還需要git checkout -- readme.txt
git reset命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)。當我們用HEAD時,表示最新的版本。

git remote add origin git@...................

關聯(lián)一個遠程庫

git push

把當前分支推送到遠程

git push -u origin master

當遠程庫是空的,我們第一次推送master分支時,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯(lián)起來,在以后的推送或者拉取時就可以簡化命令。

git clone git@.............

克隆

git branch dev

創(chuàng)建一個名稱叫dev的分支

git checkout dev

當前的分支切換為dev分支

git checkout -b dev

創(chuàng)建一個dev分支,并且切換到dev分支(相當于是是前面兩句命令的合并)

git branch

列出所有分支,當前分支前面會標一個*號

git merge dev

把dev分支的工作成果合并到當前分支上、

git merge命令用于合并指定分支到當前分支

git branch -d dev

刪除dev分支

git branch -D dev

若dev分支還沒合并到所切出來的分支,則git branch -d dev將不能刪除dev分支,可以通過git branch -D dev強行刪除dev分支

git log --graph

查看分支合并圖

git log --graph --pretty=oneline --abbrev-commit

git merge --no-ff -m "備注的信息" dev

將dev分支合并到當前分支的時候強制禁用Fast forward模式

通常,合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息。
如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。

合并分支時,加上--no-ff
參數(shù)就可以用普通模式合并,合并后的歷史有分支,能看出來曾經(jīng)做過合并,而fast forward
合并就看不出來曾經(jīng)做過合并。

git stash

可用來暫存當前正在進行的工作

git stash list

查看已暫存列表

git stash apply

恢復工作現(xiàn)場,但是恢復后,stash內(nèi)容并不刪除

git stash drop

刪除stash內(nèi)容

git stash pop

恢復的同時把stash內(nèi)容也刪了,相當于前面兩個命令的結(jié)合

git stash apply stash@{0}

恢復指定的stash

git remote

要查看遠程庫的名稱

git remote -v

顯示更詳細的遠程庫信息。顯示可以抓取和推送的origin的地址。如果沒有推送權限,就看不到push的地址

git push origin 本地分支的名稱

把該分支上的所有本地提交推送到遠程庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

git branch -r

查看遠程分支

git branch -a

查看所有分支(會顯示本地分支和遠程分支)

git fetch

個人粗淺的理解為將遠程所有的分支信息拉取到本地

git checkout -b local-branchname origin/remote_branchname

將遠程分支映射到本地命名為local-branchname 的一分支(本地分支名稱最好和遠程分支名稱一致)

git branch --set-upstream dev origin/dev

指定本地dev分支與遠程origin/dev分支的鏈接

git tag

查看所有標簽

git tag 標簽名稱

打標簽:默認標簽是打在最新提交的commit上的

git tag 標簽名稱 commit的版本號

例如:git tag v0.9 6224937
在制定的提交位置上打上標簽

git show 標簽名稱

查看標簽信息

git tag -a 我是標簽 -m "添加了標簽" 3628164

例如:git tag -a v0.1 -m "version 0.1 released" 3628164
創(chuàng)建帶有說明的標簽,用-a指定標簽名,-m指定說明文字。經(jīng)測試 -a可以去掉,也就可以寫成
git tag 我是標簽 -m "添加了標簽" 3628164

git tag -d v0.1

刪除一個叫做 v0.1的本地標簽

git push origin :refs/tags/<tagname>

刪除一個遠程標簽

git push origin 標簽名稱

推送某個標簽到遠程

git push origin --tags

一次性推送全部尚未推送到遠程的本地標簽

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

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