安裝完成git之后,一定要把自己的用戶信息配置進(jìn)去
這樣才會(huì)知道每一次的操作是誰(shuí)進(jìn)行的
git config --global user.name "xxxxx"
git config --global user.email "xxxxx@xxxx.com"
雙引號(hào)內(nèi)的信息是自己的用戶名以及郵箱
使用git config --list命令可以查看信息是否成功寫入:
理論知識(shí)
要想了解Git更具體的操作流程,請(qǐng)看下圖:
然后我們可以開始一個(gè)新項(xiàng)目的Git實(shí)踐了
首先第一步:我們可以先創(chuàng)建一個(gè)新項(xiàng)目
然后在項(xiàng)目的根目錄下,輸入命令git init進(jìn)行初始化Git
這里我們可以看到我們的Git已經(jīng)初始化成功。
然后我們?cè)谶M(jìn)行下一步操作
在現(xiàn)在寫代碼的過(guò)程中,很多時(shí)候都會(huì)在項(xiàng)目中寫一個(gè)README.md的文檔,一般在這個(gè)文檔中我們會(huì)寫一個(gè)項(xiàng)目的主要操作過(guò)程和項(xiàng)目功能介紹等。
在Mac下我們可以使用vim命令
直接在已經(jīng)進(jìn)行Git初始化的項(xiàng)目中,寫入一個(gè)README.md文檔
我們可以直接輸入命令 vim README.md
然后就進(jìn)入了vim編輯器中,輸入一句對(duì)這個(gè)項(xiàng)目的大概描述
然后點(diǎn)擊esc 并按下 :wq進(jìn)行保存文件并退出的操作
這里提示一下,如果想要進(jìn)行重新對(duì)README.md文件的編輯
直接在進(jìn)入vim文件編輯器后的視圖頁(yè)面中,輸入字母i,然后回車,
然后這個(gè)文檔又變成可編輯的文檔了,記住編輯之后一定要根據(jù)進(jìn)行自己的需求進(jìn)行相應(yīng)的保存
然后我們就可以將文件添加到暫存區(qū)域里了
回到已經(jīng)進(jìn)行Git初始化的項(xiàng)目中,在命令行窗口,輸入命令:
git add README.md
然后回車
這里呢,一般不會(huì)出現(xiàn)特別的消息,然后我們?cè)倮^續(xù)準(zhǔn)備下一步的操作
將文件提交到我們自己的Git倉(cāng)庫(kù)中
根據(jù)圖上提示,我們可知,Git告訴了我們一個(gè)文件被改動(dòng)了
有一行內(nèi)容被添加了
在這里我們?cè)僮⒁庖幌?commit是提交的意思, -m 后邊跟著的是本次提交的代碼說(shuō)明,就大概描述這一版本做了哪些內(nèi)容的改動(dòng),以便可以迅速查看
但我們要知道,對(duì)于這個(gè)提交的說(shuō)明,Git是強(qiáng)制要求必須寫的,因?yàn)槿绻麤](méi)有使用 -m 選項(xiàng),Git會(huì)自動(dòng)打開一個(gè)編輯器,要求操作者在其中輸入提交的相關(guān)說(shuō)明,輸入完畢后保存退出就可以了
所以
我們可以看出,講工作目錄的文件放到Git倉(cāng)庫(kù)只需要兩步:
Step One : git add 文件名
Step One : git commit -m "提交說(shuō)明"
然后下一步我們需要做什么呢,就是查看狀態(tài),畢竟,如果你想要知道哪些文件是新添加的,哪些文件已經(jīng)加入了暫存區(qū)域,來(lái)幫助自己更好的理解自己進(jìn)行的操作步驟有哪些
然后我們可以從命令行的提示中得到
On branch master:表示我們現(xiàn)在正位于一個(gè)叫做"master"的分支里,這是默認(rèn)的分支,所以我們可以先不用去理解它的具體含義
nothing to commit, working tree clean:說(shuō)明了當(dāng)前的工作目錄是"干凈的",沒(méi)有需要提交的文件(意思就是在上一次的提交之后,工作目錄中并沒(méi)有修改和增加刪除任何文件,沒(méi)有進(jìn)行任何的操作)
在這里,為了驗(yàn)證要是在當(dāng)前的工作目中新增加,刪除,修改了其他文件,git status命令會(huì)有哪些改變,我們?cè)俅伟裄EADME.md文件打開,進(jìn)行編輯操作,增加一句話,然后再進(jìn)行保存退出操作
然后在命令行中再次輸入git status命令
可以得到:
Changes not staged for commit:這句話表示暫存區(qū)有改動(dòng)的文件還沒(méi)提交
然后我們可以根據(jù)它小括號(hào)里面的提示,進(jìn)行g(shù)it add操作
然后我們?cè)俅尾榭串?dāng)前提交的狀態(tài)
再次通過(guò)上圖小括號(hào)可以得知:我們還可以用
git reset HEAD<file>來(lái)回到未提交的狀態(tài)
然后我們可以再試一下
一直git add 又git commit是不是特別麻煩呢
有一句命令可以直接將已經(jīng)跟蹤的文件先add到暫存區(qū)域,然后再執(zhí)行commit命令,那就是git commit -am "提交說(shuō)明"
ps:這里的-am是-a -m的縮寫
然后我們就可以用git log命令查看歷史提交了,查看具體日志
好,這里我們?cè)賮?lái)進(jìn)行另外一種操作
回滾快照
快照即提交的版本,每個(gè)版本稱為一個(gè)快照
現(xiàn)在我們利用reset 命令回滾快照,并看看Git和本地倉(cāng)庫(kù),暫存區(qū)域,Git倉(cāng)庫(kù)分別發(fā)生了什么
執(zhí)行g(shù)it reset HEAD~命令,然后再執(zhí)行g(shù)it status
這里要注意HEAD表示HEAD的上一個(gè)版本提交,HEAD表示HEAD的上上一個(gè)版本提交,如果希望表示前面的第十個(gè)快照,那么可以直接用HEAD10來(lái)表示
git reset HEAD~也是git reset --mixed HEAD~的縮寫,因?yàn)?-mixed,所以可省略
為了靈活的操作這三個(gè)區(qū)域之間的聯(lián)系,Git還為reset命令安排了
-- soft 和 --hard選項(xiàng)
-- soft選項(xiàng)
git reset --soft HEAD~ 命令就相當(dāng)于只移動(dòng)HEAD的指向,但并不會(huì)將快照回滾到暫存區(qū)域中.那它到底有什么作用呢,事實(shí)它就是相當(dāng)于撤銷了上一次的提交(commit)
然后可以得知,我們的具體操作