git教程02——詳細(xì)的git基本操作命令

git教程01——windows系統(tǒng)下教科書(shū)式安裝git
git教程03——遠(yuǎn)程倉(cāng)庫(kù)
git教程04——2種方法將本地代碼提交到github上
git教程05——克隆github上的代碼到本地

配置用戶名和郵箱

初次安裝git帜平,需要配置用戶名和郵箱偎窘,否則當(dāng)你提交到github時(shí)候誓禁,會(huì)出現(xiàn)提示:please tell me who you are.
截圖.png

因?yàn)镚it是分布式版本控制系統(tǒng)广恢,所以需要填寫(xiě)用戶名和郵箱作為一個(gè)標(biāo)識(shí)。你需要運(yùn)行命令來(lái)配置你的用戶名和郵箱:

  $ git config --global user.name "your username"  //回車
  $ git config --global user.email "your email" //回車
截圖.png

注意:(引號(hào)內(nèi)請(qǐng)輸入你自己設(shè)置的名字和郵箱)此用戶名和郵箱是git提交代碼時(shí)用來(lái)顯示你身份和聯(lián)系方式的,并不是github用戶名和郵箱
有了這個(gè)參數(shù),表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置拱镐,當(dāng)然你也可以對(duì)某個(gè)倉(cāng)庫(kù)指定的不同的用戶名和郵箱。

創(chuàng)建版本庫(kù)

版本庫(kù)又名倉(cāng)庫(kù)持际,英文名repository沃琅,我們可以就簡(jiǎn)單的理解為一個(gè)目錄,這個(gè)目錄里面所有的文件都可以被git管理起來(lái)蜘欲,每個(gè)文件的修改益眉,刪除git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史芒填,或者在將來(lái)某個(gè)時(shí)刻還可以將文件”還原”呜叫。
接下來(lái)創(chuàng)建一個(gè)倉(cāng)庫(kù):

①在F盤 –> test文件夾下 目錄下新建一個(gè)testgit版本庫(kù):
截圖.png

pwd 命令是用于顯示當(dāng)前的目錄
1)通過(guò)命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù),如下:

git init 
截圖.png

這時(shí)候你當(dāng)前testgit目錄下會(huì)多了一個(gè).git的目錄殿衰,這個(gè)目錄是Git來(lái)跟蹤管理版本的朱庆,沒(méi)事千萬(wàn)不要手動(dòng)亂改這個(gè)目錄里面的文件,否則闷祥,會(huì)把git倉(cāng)庫(kù)給破壞了娱颊。如下:


截圖.png

2)把文件添加到版本庫(kù)中:
首先要明確下傲诵,所有的版本控制系統(tǒng),只能跟蹤文本文件的改動(dòng)箱硕,比如txt文件拴竹,網(wǎng)頁(yè),所有程序的代碼等剧罩,Git也不列外栓拜,版本控制系統(tǒng)可以告訴你每次的改動(dòng),但是圖片惠昔,視頻這些二進(jìn)制文件幕与,雖能也能由版本控制系統(tǒng)管理,但沒(méi)法跟蹤文件的變化镇防,只能把二進(jìn)制文件每次改動(dòng)串起來(lái)啦鸣,也就是知道圖片從1kb變成2kb,但是到底改了啥来氧,版本控制也不知道诫给。
下面先看下demo如下演示:
我們?cè)诎姹編?kù)testgit目錄下新建一個(gè)記事本test.txt文件,內(nèi)容是:hello world啦扬!
第一步:使用命令 git add test.txt添加到暫存區(qū)里面去中狂。如下:

git add 你的文件  //把文件添加到倉(cāng)庫(kù)

截圖.png

如果沒(méi)有任何提示,說(shuō)明已經(jīng)添加成功了扑毡。
第二步:用命令git commit告訴Git吃型,把文件提交到倉(cāng)庫(kù)。

git commit -m '描述你提交了什么內(nèi)容' //把文件提交到倉(cāng)庫(kù)

截圖.png

這里解釋下git commit命令僚楞,-m后面輸入的是本次提交的說(shuō)明,可以輸入任意內(nèi)容枉层,當(dāng)然最好是有意義的泉褐。當(dāng)git commit命令執(zhí)行成功后會(huì)告訴你:

1 file changed:1個(gè)文件被改動(dòng)(我們新添加的test.txt文件);
1 insertion(+):插入了一行內(nèi)容(test.txt有兩行內(nèi)容)鸟蜡。

現(xiàn)在我們已經(jīng)提交了一個(gè)test.txt文件了膜赃,我們下面可以通過(guò)命令git status來(lái)查看是否還有文件未提交,如下:

git status//檢查狀態(tài)
截圖.png

說(shuō)明沒(méi)有任何文件未提交揉忘,但是我現(xiàn)在繼續(xù)來(lái)改下test.txt內(nèi)容跳座,比如我在下面添加一行hello cat內(nèi)容,繼續(xù)使用git status來(lái)查看下結(jié)果泣矛,如下:

截圖.png

上面的命令告訴我們 test.txt文件已被修改疲眷,但是有未被提交的修改。

接下來(lái)我想看下test.txt文件到底改了什么內(nèi)容您朽,如何查看呢狂丝?可以使用如下命令:

git diff test.txt 如下:

git diff 你的文件
截圖.png

如上可以看到,test.txt文件內(nèi)容從一行hello world!改成 二行 添加了一行hello cat內(nèi)容几颜。

知道了對(duì)test.txt文件做了什么修改后倍试,我們可以放心的提交到倉(cāng)庫(kù)了,提交修改和提交文件是一樣的2步(第一步是git add 第二步是:git commit)蛋哭。

3.版本回退:
如上县习,我們已經(jīng)學(xué)會(huì)了修改文件,現(xiàn)在我繼續(xù)對(duì)test.txt文件進(jìn)行修改谆趾,再增加一行內(nèi)容為hello dog繼續(xù)執(zhí)行命令如下:

截圖.png

 現(xiàn)在我們已經(jīng)對(duì)test.txt文件做了三次修改了躁愿,那么我現(xiàn)在想查看下歷史記錄,如何查呢棺妓?我們現(xiàn)在可以使用命令 git log 演示如下所示:

git log //查看歷史記錄
截圖.png

git log命令顯示從最近到最遠(yuǎn)的顯示日志攘已,我們可以看到最近三次提交,最近的一次是,增加內(nèi)容為hello dog.第一次默認(rèn)是 hello world!.如果嫌上面顯示的信息太多的話怜跑,我們可以使用命令 git log –pretty=oneline 演示如下:

git log –pretty=oneline
截圖.png

現(xiàn)在我想使用版本回退操作样勃,我想把當(dāng)前的版本回退到上一個(gè)版本,可以使用如下2種命令:
git reset --hard HEAD^ 性芬,那么如果要回退到上上個(gè)版本只需把HEAD^改成 HEAD^^ 以此類推峡眶,那如果要回退到前100個(gè)版本的話,使用上面的方法肯定不方便植锉,我們可以使用下面的簡(jiǎn)便命令操作:git reset --hard HEAD~100 即可辫樱。未回退之前的test.txt內(nèi)容如下:

git reset --hard HEAD^ //回退到上個(gè)版本;適用于版本少的
git reset --hard HEAD~100 //回退到前100個(gè)版本
截圖.png

如果想回退到上一個(gè)版本的命令如下操作:
截圖.png

再來(lái)查看下 test.txt內(nèi)容如下:通過(guò)命令cat test.txt查看

cat 你的文件  

截圖.png

可以看到俊庇,內(nèi)容已經(jīng)回退到上一個(gè)版本了狮暑。我們可以繼續(xù)使用git log 來(lái)查看下歷史記錄信息,如下:
截圖.png

我們看到 增加hello dog內(nèi)容我們沒(méi)有看到了辉饱,但是現(xiàn)在我想回退到最新的版本搬男,如:有hello dog的內(nèi)容要如何恢復(fù)呢?我們可以通過(guò)版本號(hào)回退彭沼,使用命令方法如下:
git reset --hard 版本號(hào) 缔逛,但是現(xiàn)在的問(wèn)題假如我已經(jīng)關(guān)掉過(guò)一次命令行或者h(yuǎn)ello dog內(nèi)容的版本號(hào)我并不知道呢?要如何知道增加hello dog內(nèi)容的版本號(hào)呢姓惑?可以通過(guò)如下命令即可獲取到版本號(hào):git reflog 演示如下:

git reflog  //獲取到版本號(hào)

截圖.png

通過(guò)上面的顯示我們可以知道褐奴,增加內(nèi)容hello dog的版本號(hào)是 700cc53.我們現(xiàn)在可以命令
 git reset --hard 700cc53 來(lái)恢復(fù)了。演示如下:

 git reset --hard 你要恢復(fù)內(nèi)容的版本號(hào)
截圖.png

 可以看到 目前已經(jīng)是最新的版本了于毙。

4.理解工作區(qū)與暫存區(qū)的區(qū)別敦冬?
工作區(qū):就是你在電腦上看到的目錄,比如目錄下testgit里的文件(.git隱藏目錄版本庫(kù)除外)唯沮》瞬梗或者以后需要再新建的目錄文件等等都屬于工作區(qū)范疇伞辛。
版本庫(kù)(Repository):工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不屬于工作區(qū),這是版本庫(kù)夯缺。其中版本庫(kù)里面存了很多東西蚤氏,其中最重要的就是stage(暫存區(qū)),還有Git為我們自動(dòng)創(chuàng)建了第一個(gè)分支master,以及指向master的一個(gè)指針HEAD踊兜。

我們前面說(shuō)過(guò)使用Git提交文件到版本庫(kù)有兩步:

第一步:是使用 git add 把文件添加進(jìn)去竿滨,實(shí)際上就是把文件添加到暫存區(qū)。

第二步:使用git commit提交更改捏境,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支上于游。

我們繼續(xù)使用demo來(lái)演示下:

我們?cè)趖est.txt再添加一行內(nèi)容為hello pig,接著在目錄下新建一個(gè)文件為test.txt 內(nèi)容為test垫言,我們先用命令 git status來(lái)查看下?tīng)顟B(tài)贰剥,如下:

截圖.png

現(xiàn)在我們先使用git add 命令把2個(gè)文件都添加到暫存區(qū)中,再使用git status來(lái)查看下?tīng)顟B(tài)筷频,如下:

截圖.png

著我們可以使用git commit一次性提交到分支上蚌成,如下:
QQ截圖20180521170359.png

5.git撤銷修改和刪除文件操作。
①撤銷修改:
比如我現(xiàn)在在test.txt文件里面增加一行 內(nèi)容為hello rabbit凛捏,我們先通過(guò)命令查看如下:


截圖.png

在我未提交之前担忧,我發(fā)現(xiàn)添加hello rabbit內(nèi)容有誤,所以我得馬上恢復(fù)以前的版本坯癣,現(xiàn)在我可以有如下幾種方法可以做修改:

第一:如果我知道要?jiǎng)h掉那些內(nèi)容的話瓶盛,直接手動(dòng)更改去掉那些需要的文件,然后add添加到暫存區(qū)示罗,最后commit掉
第二:我可以按以前的方法直接恢復(fù)到上一個(gè)版本惩猫。使用 git reset --hard HEAD^

但是現(xiàn)在我不想使用上面的2種方法,我想直接想使用撤銷命令該如何操作呢蚜点?首先在做撤銷之前帆锋,我們可以先用 git status 查看下當(dāng)前的狀態(tài)。如下所示:

截圖.png

可以發(fā)現(xiàn)禽额,Git會(huì)告訴你,git checkout -- file 可以丟棄工作區(qū)的修改皮官,如下命令:

git checkout  --  你的文件

截圖.png

命令 git checkout --test.txt意思就是脯倒,把test.txt文件在工作區(qū)做的修改全部撤銷,這里有2種情況捺氢,如下:

test.txt自動(dòng)修改后藻丢,還沒(méi)有放到暫存區(qū),使用 撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)摄乒。
另外一種是test.txt已經(jīng)放入暫存區(qū)了悠反,接著又作了修改残黑,撤銷修改就回到添加暫存區(qū)后的狀態(tài)。

對(duì)于第二種情況斋否,我想我們繼續(xù)做demo來(lái)看下梨水,假如現(xiàn)在我對(duì)test.txt添加一行 內(nèi)容為hello tiger,我git add增加到暫存區(qū)后茵臭,接著添加內(nèi)容hello dragon疫诽,我想通過(guò)撤銷命令讓其回到暫存區(qū)后的狀態(tài)。如下所示:

截圖.png

注意:命令git checkout -- test.txt 中的 -- 很重要旦委,如果沒(méi)有 -- 的話奇徒,那么命令變成創(chuàng)建分支了。

②刪除文件缨硝。
假如我現(xiàn)在版本庫(kù)testgit目錄新建一個(gè)b.txt文件摩钙,然后用命令add,最后提交查辩,如下:

rm 你的文件  //刪除

截圖.png

如上:一般情況下胖笛,可以直接在文件目錄中把文件刪了,或者使用如上rm命令:rm b.txt 宜肉,如果我想徹底從版本庫(kù)中刪掉了此文件的話匀钧,可以再執(zhí)行commit命令 提交掉,現(xiàn)在目錄是這樣的谬返,
截圖.png

只要沒(méi)有commit之前之斯,如果我想在版本庫(kù)中恢復(fù)此文件,按如下操作:
可以使用如下命令 git checkout -- b.txt遣铝,如下所示:

截圖.png

再來(lái)看看我們testgit目錄佑刷,把之前刪掉的文件又恢復(fù)了:
截圖.png

好了,git基本操作命令到此為止酿炸,另外提供一個(gè)學(xué)習(xí)git的網(wǎng)址瘫絮,點(diǎn)我

感謝:
廖雪峰Git教程
RUNOOB.COM學(xué)習(xí)git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市填硕,隨后出現(xiàn)的幾起案子麦萤,更是在濱河造成了極大的恐慌,老刑警劉巖扁眯,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件壮莹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡姻檀,警方通過(guò)查閱死者的電腦和手機(jī)命满,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)绣版,“玉大人胶台,你說(shuō)我怎么就攤上這事歼疮。” “怎么了诈唬?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵韩脏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我讯榕,道長(zhǎng)骤素,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任愚屁,我火速辦了婚禮济竹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霎槐。我一直安慰自己送浊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布丘跌。 她就那樣靜靜地躺著袭景,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闭树。 梳的紋絲不亂的頭發(fā)上耸棒,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音报辱,去河邊找鬼与殃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碍现,可吹牛的內(nèi)容都是我干的幅疼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼昼接,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼爽篷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起慢睡,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逐工,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后漂辐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體泪喊,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年者吁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饲帅。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡复凳,死狀恐怖瘤泪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情育八,我是刑警寧澤对途,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站髓棋,受9級(jí)特大地震影響实檀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜按声,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一膳犹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧签则,春花似錦须床、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至柒凉,卻和暖如春族阅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背膝捞。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工坦刀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绑警。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓求泰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親计盒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渴频,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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