git 的使用(一)

一获黔、第一步打開終端輸入git 檢測(cè)是否安裝git,如果已經(jīng)安裝好了會(huì)有如下效果

終端代碼執(zhí)行效果

如果你碰巧用Debian或Ubuntu Linux玷氏,通過一條sudo apt-get install git
就可以直接完成Git的安裝渗蟹,非常簡(jiǎn)單雌芽。更多方法可以百度,或者訪問下面地址
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

二、第二步創(chuàng)建一個(gè)新目錄在終端輸入以下代碼:

* mkdir learngit 創(chuàng)建文件夾learngit

輸入代碼

* cd mkdir 進(jìn)入文件夾中

進(jìn)入文件夾中
創(chuàng)建文件夾

三徘禁、第三步建立git倉庫輸入 git init

輸入代碼

從下面的圖我們可以看到娘荡,learngit 中的文件都是隱藏文件必須用編譯器打開才能看到文件,創(chuàng)建完git倉庫我們就可以看到文件夾下多了一個(gè)后綴為.git 的文件夾大年。


建立倉庫前
建立倉庫后
文件夾

四玉雾、第四步垦缅,接著在目錄下新建一個(gè)文檔凡恍,learngit.txt,內(nèi)容我們先這樣寫(至于為什么這樣寫咳焚,主要因?yàn)楸救吮容^喜歡古詩詞):

文本內(nèi)容

五、第五步庞溜,我們使用git add這個(gè)命令革半,將文件添加到倉庫中:

終端代碼

六、第六步流码,接下來又官,我們使用git commit這個(gè)命令,將文件提交到倉庫中:

終端代碼以及執(zhí)行效果

-m后面的文字是本次提交到倉庫中的注釋漫试,每次提交時(shí)可以告訴大家我這次干了什么六敬。

七、第七步歧匈,修改文件口糕,我們刪除learngit.txt文件中的最后一行,我們運(yùn)行g(shù)it status
來查看一下弄唧。

文本內(nèi)容
終端代碼以及執(zhí)行效果

git status命令可以讓我們實(shí)時(shí)掌握倉庫當(dāng)前的狀態(tài)辩稽,上面的命令告訴我們侮腹,readme.txt被修改過了履婉,但還沒有準(zhǔn)備提交的修改鸠窗。

雖然Git告訴我們r(jià)eadme.txt被修改了臣嚣,但如果能看看具體修改了什么內(nèi)容,自然是很好的饥努。比如你休假兩周從國外回來乍迄,第一天上班時(shí)逊躁,已經(jīng)記不清上次怎么修改的readme.txt囚戚,所以借嗽,需要用git diff這個(gè)命令看看:

終端代碼執(zhí)行效果

git diff顧名思義就是查看difference(差異)肌索,顯示的格式正是Unix通用的diff格式诚亚,可以從上面的命令輸出看到闸准,我們刪除了最后一行詩句但惶。

知道了對(duì)readme.txt作了什么修改后扎瓶,再把它提交到倉庫就放心多了愈捅,提交修改和提交新文件是一樣的兩步,第一步是git add:

終端代碼執(zhí)行效果

同樣沒有任何輸出慈鸠。在執(zhí)行第二步git commit之前蓝谨,我們?cè)龠\(yùn)行g(shù)it status看看當(dāng)前倉庫的狀態(tài):

終端代碼執(zhí)行效果

git status告訴我們,將要被提交的修改包括readme.txt林束,下一步像棘,就可以放心地提交了,輸入git commit -m "add distributed":

終端代碼執(zhí)行效果

提交后壶冒,我們?cè)儆胓it status命令看看倉庫的當(dāng)前狀態(tài):

終端代碼執(zhí)行效果

Git告訴我們當(dāng)前沒有需要提交的修改缕题,而且,工作目錄是干凈(working directory clean)的胖腾。

八烟零,第八步版本退回
上面我們學(xué)習(xí)了怎樣修改文件,現(xiàn)在我們?cè)倬毩?xí)一次咸作,于是我們?cè)趓eadme.txt中再修改一點(diǎn)內(nèi)容。

文本內(nèi)容

然后添加并提交到倉庫墅诡。

終端代碼執(zhí)行效果

像這樣桐智,你不斷對(duì)文件進(jìn)行修改,然后不斷提交修改到版本庫里然磷,就好比玩RPG游戲時(shí)姿搜,每通過一關(guān)就會(huì)自動(dòng)把游戲狀態(tài)存盤,如果某一關(guān)沒過去梭纹,你還可以選擇讀取前一關(guān)的狀態(tài)业踢。有些時(shí)候,在打Boss之前瞬沦,你會(huì)手動(dòng)存盤逛钻,以便萬一打Boss失敗了曙痘,可以從最近的地方重新開始立肘。Git也是一樣谅年,每當(dāng)你覺得文件修改到一定程度的時(shí)候,就可以“保存一個(gè)快照”旺订,這個(gè)快照在Git中被稱為commit区拳。一旦你把文件改亂了意乓,或者誤刪了文件届良,還可以從最近的一個(gè)commit恢復(fù),然后繼續(xù)工作,而不是把幾個(gè)月的工作成果全部丟失为障。

當(dāng)然了鳍怨,在實(shí)際工作中,我們腦子里怎么可能記得一個(gè)幾千行的文件每次都改了什么內(nèi)容声滥,不然要版本控制系統(tǒng)干什么落塑。版本控制系統(tǒng)肯定有某個(gè)命令可以告訴我們歷史記錄罐韩,在Git中散吵,我們用git log命令查看:

終端代碼執(zhí)行效果

git log命令顯示從最近到最遠(yuǎn)的提交日志矾睦,我們可以看到2次提交枚冗。如果嫌輸出信息太多,看得眼花繚亂的肛宋,可以試試加上--pretty=oneline參數(shù):

終端代碼執(zhí)行效果

需要友情提示的是酝陈,你看到的一大串類似3628164...882e1e0的是commit id(版本號(hào))沉帮,和SVN不一樣贫堰,Git的commit id不是1其屏,2,3……遞增的數(shù)字川背,而是一個(gè)SHA1計(jì)算出來的一個(gè)非常大的數(shù)字,用十六進(jìn)制表示膨更,而且你看到的commit id和我的肯定不一樣荚守,以你自己的為準(zhǔn)矗漾。為什么commit id需要用這么一大串?dāng)?shù)字表示呢踢俄?因?yàn)镚it是分布式的版本控制系統(tǒng)都办,后面我們還要研究多人在同一個(gè)版本庫里工作,如果大家都用1势木,2啦桌,3……作為版本號(hào)及皂,那肯定就沖突了验烧。


好了,現(xiàn)在我們啟動(dòng)時(shí)光穿梭機(jī)若治,準(zhǔn)備把readme.txt回退到上一個(gè)版本端幼,也就是“add distributed”的那個(gè)版本婆跑,怎么做呢庭呜?

首先摹迷,Git必須知道當(dāng)前版本是哪個(gè)版本,在Git中驮审,用HEAD表示當(dāng)前版本疯淫,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣)戳玫,上一個(gè)版本就是HEAD咕宿,上上一個(gè)版本就是HEAD,當(dāng)然往上100個(gè)版本寫100個(gè)比較容易數(shù)不過來缆镣,所以寫成HEAD~100董瞻。

終端代碼執(zhí)行效果

看看readme.txt的內(nèi)容是不是版本add distributed:

Paste_Image.png

我們查看文本文件:


文本內(nèi)容

可以發(fā)現(xiàn)我們添加的文字已經(jīng)不見了已經(jīng)退回之前的版本。

最新的那個(gè)版本已經(jīng)看不到了壹哺!好比你從21世紀(jì)坐時(shí)光穿梭機(jī)來到了19世紀(jì),想再回去已經(jīng)回不去了逝慧,腫么辦笛臣?

辦法其實(shí)還是有的沈堡,只要上面的命令行窗口還沒有被關(guān)掉燕雁,你就可以順著往上找啊找啊鲸拥,找到上面那個(gè)commit id是9838366...刑赶,于是就可以指定回到未來的某個(gè)版本:

版本號(hào)沒必要寫全撞叨,前幾位就可以了牵敷,Git會(huì)自動(dòng)去找法希。當(dāng)然也不能只寫前一兩位苫亦,因?yàn)镚it可能會(huì)找到多個(gè)版本號(hào),就無法確定是哪一個(gè)了村生。

終端代碼執(zhí)行效果

再小心翼翼地看看readme.txt的內(nèi)容:


Paste_Image.png

我們?cè)倏匆幌挛谋緝?nèi)容可以發(fā)現(xiàn)趁桃,果然卫病,我胡漢三又回來了蟀苛。

文本內(nèi)容

現(xiàn)在帜平,你回退到了某個(gè)版本梅鹦,關(guān)掉了電腦齐唆,第二天早上就后悔了,想恢復(fù)到新版本怎么辦茉帅?找不到新版本的commit id怎么辦堪澎?

在Git中,總是有后悔藥可以吃的马昙。當(dāng)你用$ git reset --hard HEAD^回退到舊版本時(shí),再想恢復(fù)到最新版本攒暇,就必須找到最新版本的commit id形用。Git提供了一個(gè)命令git reflog用來記錄你的每一次命令:

終端代碼執(zhí)行效果

于是乎田度,我們就可以根據(jù)commit的id回到我們想要回到的任何一個(gè)版本。

未完待續(xù)詳情乎莉,請(qǐng)看下篇git 的使用(二)惋啃,也可參考一下面的網(wǎng)站监右。

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末健盒,一起剝皮案震驚了整個(gè)濱河市扣癣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌善茎,老刑警劉巖垂涯,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異骄蝇,居然都是意外死亡九火,警方通過查閱死者的電腦和手機(jī)册招,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門是掰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來键痛,“玉大人,你說我怎么就攤上這事江兢《∑担” “怎么了席里?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵胁勺,是天一觀的道長。 經(jīng)常有香客問我续搀,道長惫霸,這世上最難降的妖魔是什么褐啡? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮许昨,結(jié)果婚禮上褥赊,老公的妹妹穿的比我還像新娘拌喉。我一直安慰自己,他們只是感情好端仰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布榆俺。 她就那樣靜靜地躺著,像睡著了一般陪捷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啡直,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天酒觅,我揣著相機(jī)與錄音舷丹,去河邊找鬼蜓肆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛症概,可吹牛的內(nèi)容都是我干的早芭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼调炬,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筐眷!你這毒婦竟也來了习柠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤武翎,失蹤者是張志新(化名)和其女友劉穎宝恶,沒想到半個(gè)月后垫毙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拱绑,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猎拨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年红省,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虾啦。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缸逃,死狀恐怖需频,靈堂內(nèi)的尸體忽然破棺而出筷凤,到底是詐尸還是另有隱情苞七,我是刑警寧澤蹂风,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布惠啄,位于F島的核電站任内,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏趋距。R本人自食惡果不足惜节腐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一翼雀、第九天 我趴在偏房一處隱蔽的房頂上張望孩擂。 院中可真熱鬧,春花似錦、人聲如沸坦弟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氯析。三九已至莺褒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間你辣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工宴凉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留表悬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓籽暇,卻偏偏與公主長得像饥追,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子但绕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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