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

什么是版本庫(kù)呢?版本庫(kù)又名倉(cāng)庫(kù)冰单,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄蜗帜,這個(gè)目錄里面的所有文件都可以被Git管理起來,每個(gè)文件的修改、刪除,Git都能跟蹤闭翩,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”垃杖。

所以男杈,創(chuàng)建一個(gè)版本庫(kù)非常簡(jiǎn)單丈屹,首先调俘,選擇一個(gè)合適的地方,創(chuàng)建一個(gè)空目錄:

$mkdir learngit$cd learngit$pwd/Users/michael/learngit

pwd命令用于顯示當(dāng)前目錄旺垒。在我的Mac上彩库,這個(gè)倉(cāng)庫(kù)位于/Users/michael/learngit。

如果你使用Windows系統(tǒng)先蒋,為了避免遇到各種莫名其妙的問題骇钦,請(qǐng)確保目錄名(包括父目錄)不包含中文。

第二步竞漾,通過git init命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù):

$git init InitializedemptyGitrepositoryin/Users/michael/learngit/.git/

瞬間Git就把倉(cāng)庫(kù)建好了眯搭,而且告訴你是一個(gè)空的倉(cāng)庫(kù)(empty Git repository)窥翩,細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git的目錄,這個(gè)目錄是Git來跟蹤管理版本庫(kù)的鳞仙,沒事千萬(wàn)不要手動(dòng)修改這個(gè)目錄里面的文件寇蚊,不然改亂了,就把Git倉(cāng)庫(kù)給破壞了棍好。

如果你沒有看到.git目錄仗岸,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的,用ls -ah命令就可以看見借笙。

也不一定必須在空目錄下創(chuàng)建Git倉(cāng)庫(kù)扒怖,選擇一個(gè)已經(jīng)有東西的目錄也是可以的。不過业稼,不建議你使用自己正在開發(fā)的公司項(xiàng)目來學(xué)習(xí)Git盗痒,否則造成的一切后果概不負(fù)責(zé)。

把文件添加到版本庫(kù)

首先這里再明確一下低散,所有的版本控制系統(tǒng)积糯,其實(shí)只能跟蹤文本文件的改動(dòng),比如TXT文件谦纱,網(wǎng)頁(yè)看成,所有的程序代碼等等,Git也不例外跨嘉。版本控制系統(tǒng)可以告訴你每次的改動(dòng)川慌,比如在第5行加了一個(gè)單詞“Linux”,在第8行刪了一個(gè)單詞“Windows”祠乃。而圖片梦重、視頻這些二進(jìn)制文件,雖然也能由版本控制系統(tǒng)管理亮瓷,但沒法跟蹤文件的變化琴拧,只能把二進(jìn)制文件每次改動(dòng)串起來,也就是只知道圖片從100KB改成了120KB嘱支,但到底改了啥蚓胸,版本控制系統(tǒng)不知道,也沒法知道除师。

不幸的是沛膳,Microsoft的Word格式是二進(jìn)制格式,因此汛聚,版本控制系統(tǒng)是沒法跟蹤Word文件的改動(dòng)的锹安,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統(tǒng),就要以純文本方式編寫文件叹哭。

因?yàn)槲谋臼怯芯幋a的忍宋,比如中文有常用的GBK編碼,日文有Shift_JIS編碼风罩,如果沒有歷史遺留問題讶踪,強(qiáng)烈建議使用標(biāo)準(zhǔn)的UTF-8編碼,所有語(yǔ)言使用同一種編碼泊交,既沒有沖突乳讥,又被所有平臺(tái)所支持。

使用Windows的童鞋要特別注意:

千萬(wàn)不要使用Windows自帶的記事本編輯任何文本文件廓俭。原因是Microsoft開發(fā)記事本的團(tuán)隊(duì)使用了一個(gè)非常弱智的行為來保存UTF-8編碼的文件云石,他們自作聰明地在每個(gè)文件開頭添加了0xefbbbf(十六進(jìn)制)的字符,你會(huì)遇到很多不可思議的問題研乒,比如汹忠,網(wǎng)頁(yè)第一行可能會(huì)顯示一個(gè)“?”,明明正確的程序一編譯就報(bào)語(yǔ)法錯(cuò)誤雹熬,等等宽菜,都是由記事本的弱智行為帶來的。建議你下載Notepad++代替記事本竿报,不但功能強(qiáng)大铅乡,而且免費(fèi)!記得把Notepad++的默認(rèn)編碼設(shè)置為UTF-8 without BOM即可:

言歸正傳烈菌,現(xiàn)在我們編寫一個(gè)readme.txt文件阵幸,內(nèi)容如下:

Gitisa version control system.Gitisfree software.

一定要放到learngit目錄下(子目錄也行),因?yàn)檫@是一個(gè)Git倉(cāng)庫(kù)芽世,放到其他地方Git再厲害也找不到這個(gè)文件挚赊。

和把大象放到冰箱需要3步相比,把一個(gè)文件放到Git倉(cāng)庫(kù)只需要兩步济瓢。

第一步荠割,用命令git add告訴Git,把文件添加到倉(cāng)庫(kù):

$git add readme.txt

執(zhí)行上面的命令旺矾,沒有任何顯示蔑鹦,這就對(duì)了,Unix的哲學(xué)是“沒有消息就是好消息”宠漩,說明添加成功举反。

第二步,用命令git commit告訴Git扒吁,把文件提交到倉(cāng)庫(kù):

$ git commit-m"wrote a readme file"[master (root-commit) cb926e7] wrote a readme file1file changed,2insertions(+)createmode100644readme.txt

簡(jiǎn)單解釋一下git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容雕崩,當(dāng)然最好是有意義的魁索,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄。

嫌麻煩不想輸入-m "xxx"行不行盼铁?確實(shí)有辦法可以這么干粗蔚,但是強(qiáng)烈不建議你這么干,因?yàn)檩斎胝f明對(duì)自己對(duì)別人閱讀都很重要饶火。實(shí)在不想輸入說明的童鞋請(qǐng)自行Google鹏控,我不告訴你這個(gè)參數(shù)。

git commit命令執(zhí)行成功后會(huì)告訴你肤寝,1個(gè)文件被改動(dòng)(我們新添加的readme.txt文件)当辐,插入了兩行內(nèi)容(readme.txt有兩行內(nèi)容)。

為什么Git添加文件需要add鲤看,commit一共兩步呢缘揪?因?yàn)閏ommit可以一次提交很多文件,所以你可以多次add不同的文件义桂,比如:

$git add file1.txt$git add file2.txt file3.txt$git commit -m"add 3 files."

小結(jié)

現(xiàn)在總結(jié)一下今天學(xué)的兩點(diǎn)內(nèi)容:

初始化一個(gè)Git倉(cāng)庫(kù)找筝,使用git init命令。

添加文件到Git倉(cāng)庫(kù)慷吊,分兩步:

第一步袖裕,使用命令git add ,注意溉瓶,可反復(fù)多次使用陆赋,添加多個(gè)文件;

第二步嚷闭,使用命令git commit攒岛,完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末胞锰,一起剝皮案震驚了整個(gè)濱河市灾锯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗅榕,老刑警劉巖顺饮,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凌那,居然都是意外死亡兼雄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門帽蝶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赦肋,“玉大人,你說我怎么就攤上這事〉璩耍” “怎么了囱井?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)趣避。 經(jīng)常有香客問我庞呕,道長(zhǎng),這世上最難降的妖魔是什么程帕? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任住练,我火速辦了婚禮,結(jié)果婚禮上愁拭,老公的妹妹穿的比我還像新娘讲逛。我一直安慰自己,他們只是感情好敛苇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布妆绞。 她就那樣靜靜地躺著,像睡著了一般枫攀。 火紅的嫁衣襯著肌膚如雪括饶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天来涨,我揣著相機(jī)與錄音图焰,去河邊找鬼。 笑死蹦掐,一個(gè)胖子當(dāng)著我的面吹牛技羔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卧抗,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼藤滥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了社裆?” 一聲冷哼從身側(cè)響起拙绊,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泳秀,沒想到半個(gè)月后标沪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嗜傅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年金句,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吕嘀。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡违寞,死狀恐怖贞瞒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坞靶,我是刑警寧澤憔狞,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布蝴悉,位于F島的核電站彰阴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拍冠。R本人自食惡果不足惜尿这,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庆杜。 院中可真熱鬧射众,春花似錦、人聲如沸晃财。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)断盛。三九已至罗洗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間钢猛,已是汗流浹背伙菜。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留命迈,地道東北人贩绕。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像壶愤,于是被迫代替她去往敵國(guó)和親淑倾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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

  • 什么是版本庫(kù)呢征椒?版本庫(kù)又名倉(cāng)庫(kù)娇哆,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄陕靠,這個(gè)目錄里面的所有文件都可以...
    yshenhn閱讀 187評(píng)論 0 0
  • 什么是版本庫(kù)呢迂尝?版本庫(kù)又名倉(cāng)庫(kù),英文名repository剪芥,你可以簡(jiǎn)單理解成一個(gè)目錄垄开,這個(gè)目錄里面的所有文件都可以...
    zhangH_ed64閱讀 106評(píng)論 0 0
  • 創(chuàng)建版本庫(kù) 什么是版本庫(kù)?版本庫(kù)又名倉(cāng)庫(kù)税肪,英文名repository,你可以簡(jiǎn)單的理解一個(gè)目錄溉躲,這個(gè)目錄里面的所有...
    八寶君閱讀 261評(píng)論 0 0
  • 本系列教程來自廖雪峰的官方網(wǎng)站,現(xiàn)在搬運(yùn)過來,目的幫助自己和小白學(xué)習(xí)收藏!附贈(zèng):常用git命令清單 什么是版本庫(kù)呢...
    Blizzard_liu閱讀 358評(píng)論 0 0
  • 版本庫(kù)又名倉(cāng)庫(kù)榜田,英文名repository,可以簡(jiǎn)單理解為一個(gè)目錄锻梳,這個(gè)目錄里面的所有文件都可以被Git管理起來箭券,...
    by小杰閱讀 250評(píng)論 0 0