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@...................

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

git push

把當前分支推送到遠程

git push -u origin master

當遠程庫是空的,我們第一次推送master分支時,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關(guān)聯(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

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

git stash drop

刪除stash內(nèi)容

git stash pop

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

git stash apply stash@{0}

恢復(fù)指定的stash

git remote

要查看遠程庫的名稱

git remote -v

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

git push origin 本地分支的名稱

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容