今天看關(guān)于Git的博客,發(fā)現(xiàn)廖神這篇總結(jié)的關(guān)于Git倉庫的博客寫的思路很清晰??梢院蜕弦黄恼?,對(duì)照的看,可以更加清晰理解。
版本庫又名倉庫,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄,這個(gè)目錄里面的所有文件都可以被Git管理起來,每個(gè)文件的修改、刪除,Git都能跟蹤,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”。
一、創(chuàng)建一個(gè)版本庫
第一步:選擇一個(gè)合適的地方,創(chuàng)建一個(gè)空目錄:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
pwd命令用于顯示當(dāng)前目錄位置。
如果你使用Windows系統(tǒng),為了避免遇到各種莫名其妙的問題,請(qǐng)確保目錄名(包括父目錄)不包含中文。
第二步:通過git init命令把這個(gè)目錄變成Git可以管理的倉庫:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
瞬間Git就把倉庫建好了,而且告訴你是一個(gè)空的倉庫(empty Git repository),細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git的目錄,這個(gè)目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。
如果你沒有看到.git目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的,用ls -al命令就可以看見。

二、把文件添加到版本庫
1、首先這里再明確一下
所有的版本控制系統(tǒng),其實(shí)只能跟蹤文本文件的改動(dòng),比如TXT文件,網(wǎng)頁,所有的程序代碼等等,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編碼,所有語言使用同一種編碼,既沒有沖突,又被所有平臺(tái)所支持。
2、使用Windows的童鞋要特別注意:
千萬不要使用Windows自帶的記事本編輯任何文本文件。原因是Microsoft開發(fā)記事本的團(tuán)隊(duì)使用了一個(gè)非常弱智的行為來保存UTF-8編碼的文件,他們自作聰明地在每個(gè)文件開頭添加了0xefbbbf(十六進(jìn)制)的字符,你會(huì)遇到很多不可思議的問題,比如,網(wǎng)頁第一行可能會(huì)顯示一個(gè)“?”,明明正確的程序一編譯就報(bào)語法錯(cuò)誤,等等,都是由記事本的弱智行為帶來的。
建議你下載Notepad++代替記事本,不但功能強(qiáng)大,而且免費(fèi)!記得把Notepad++的默認(rèn)編碼設(shè)置為UTF-8 without BOM即可:

3、把文件添加到版本庫
編寫一個(gè)readme.txt文件,一定要放到learngit目錄下(子目錄也行),因?yàn)閘earngit目錄是上邊剛剛用git init命令創(chuàng)建的一個(gè)Git倉庫,放到其他地方Git再厲害也找不到這個(gè)文件。
和把大象放到冰箱需要3步相比,把一個(gè)文件放到Git倉庫只需要兩步。
- 第一步,用命令git add告訴Git,把文件添加到倉庫:
$ git add readme.txt
執(zhí)行上面的命令,沒有任何顯示,這就對(duì)了,Unix的哲學(xué)是“沒有消息就是好消息”,說明添加成功。
- 第二步,用命令git commit告訴Git,把文件提交到倉庫:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
- 簡(jiǎn)單解釋一下git commit命令,-m后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄。
- git commit命令執(zhí)行成功后會(huì)告訴你,1 file changed:1個(gè)文件被改動(dòng)(我們新添加的readme.txt文件);2 insertions:插入了兩行內(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."
3、總結(jié):
1、初始化一個(gè)Git倉庫,使用
git init命令。2、添加文件到Git倉庫
| 分兩步: |
|---|
| 使用命令git add <file>,注意,可反復(fù)多次使用,添加多個(gè)文件; |
| 使用命令git commit -m <message>,完成。 |
- 3、文用到的Git命令
| 序號(hào) | Git命令 | 說明 |
|---|---|---|
| 1 | git init |
把一個(gè)目錄變成Git可以管理的倉庫 |
| 2 | git add |
可以將跟蹤到的更新放到暫存區(qū)(更新包括新增、修改、刪除等操作) |
| 3 | git commit -m 'add Test_text' |
提交更新到倉庫 |