什么是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄里面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”。
步驟:
- 創(chuàng)建空目錄
- 把目錄變成git可管理的倉庫
- 把文件添加到版本庫
創(chuàng)建空目錄
所以,創(chuàng)建一個版本庫非常簡單,首先,選擇一個合適的地方,創(chuàng)建一個空目錄:
$ mkdir learngit
$ cd learngit
$ pwd/Users/michael/learngit
git可管理的倉庫
通過git init命令把這個目錄變成Git可以管理的倉庫.
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),當(dāng)前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。
也不一定必須在空目錄下創(chuàng)建Git倉庫,選擇一個已經(jīng)有東西的目錄也是可以的。
把文件添加到版本庫
- git add
- git commit
所有的版本控制系統(tǒng),其實(shí)只能跟蹤文本文件的改動,比如TXT文件,網(wǎng)頁,所有的程序代碼等等,Git也不例外。
版本控制系統(tǒng)可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。
而圖片、視頻這些二進(jìn)制文件,雖然也能由版本控制系統(tǒng)管理,但沒法跟蹤文件的變化,只能把二進(jìn)制文件每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統(tǒng)不知道,也沒法知道。
不幸的是,Microsoft的Word格式是二進(jìn)制格式,因此,版本控制系統(tǒng)是沒法跟蹤Word文件的改動的,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統(tǒng),就要以純文本方式編寫文件。
因?yàn)槲谋臼怯芯幋a的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強(qiáng)烈建議使用標(biāo)準(zhǔn)的UTF-8編碼,所有語言使用同一種編碼,既沒有沖突,又被所有平臺所支持。
- 用命令
git add告訴Git,把文件添加到倉庫:
$ git add readme.txt
執(zhí)行上面的命令,沒有任何顯示,這就對了,Unix的哲學(xué)是“沒有消息就是好消息”,說明添加成功。
- 用命令
git commit告訴Git,把文件提交到倉庫:
$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txt
git commit命令執(zhí)行成功后會告訴你,1個文件被改動(我們新添加的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)容:
- 初始化一個Git倉庫,使用
git init命令。 - 添加文件到Git倉庫,分兩步:
1. 使用命令git add <file>,注意: 可反復(fù)多次使用,添加多個文件
2. 使用命令git commit,完成