創建版本庫
什麼是版本庫呢?版本庫幽冥倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裏面所有的文件都被GIt管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時候都可以追蹤歷史,或者將來在某個時候可以“還原”。
所以,創建一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄:
mkdir learngit /*創建一個名叫learngit的文件夾*/
ad learngit /*進入該文件夾*/
pwd /*顯示當前目錄*/
!!!!!如果你使用Windows系統,爲了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不包含中文。
第二步,通過git init
命令,把這個目錄可以變成Git可以管理的倉庫
瞬間Git就把倉庫創建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git
的目錄,這個目錄就是Git用來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,不然就改亂了,就把Git倉庫給破壞了;
如果你沒有看到.git
目錄,那是因爲這個目錄默認是隱藏的,用ls -ah
命令就可以看到:
也不一定必須在空目錄下創建Git倉庫,選擇一個已經有東西的目錄也是可以的;
把文件添加到版本庫
首先明確下,所有問版本控制系統,只能跟蹤文本文件的改動,比如TXT文件、網頁、所有的程序代碼等等,Git也不例外、版本控制系統可以告訴你每次的改動,比如:
- 第五行加了一個單詞“Linux”
- 第八行刪除了一個單詞“Windows”
而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但是沒辦法跟蹤文件的變化,只能把二進制文件每次的改動串聯起來,也就是隻知道圖片從100kB改成了120KB,但是具體改了什麼,版本控制系統不知道,也沒有辦法知道;
很不幸,microsoft的Word格式是二進制格式,因此,版本控制系統沒有辦法跟蹤Word文件的改動;如果真正的使用版本控制系統,就要以純文本方式編寫文件;
英文文本是有編碼的,比如中文有常有的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強烈建議使用標準的UTF-8編碼,所有語言使用同一種編碼,既沒有衝突,又被所有平臺所支持;
使用Windows的童鞋要特別注意:
千萬不要使用Windows自帶的記事本編輯任何文本文件。原因是Microsoft開發記事本的團隊使用了一個非常弱智的行爲來保存UTF-8編碼的文件,他們自作聰明地在每個文件開頭添加了0xefbbbf(十六進制)的字符,你會遇到很多不可思議的問題,比如,網頁第一行可能會顯示一個“?”,明明正確的程序一編譯就報語法錯誤,等等,都是由記事本的弱智行爲帶來的。建議你下載Notepad++代替記事本,不但功能強大,而且免費!記得把Notepad++的默認編碼設置爲UTF-8 without BOM即可:
言歸正傳,我們現在編寫一個readme.txt
文件,內容如下:
Git is a version control system.
Git is free software.
一定要放到learngit
目錄下(子目錄也可以),因爲這是一個Git倉庫,放到其他地方Git再厲害也找不到撒;
和把大象放到冰箱需要三步相比,把一個文件放到Git倉庫只需要兩步:
- 第一步,用命令
git add
告訴 git,把文件添加到倉庫:
$ git add readme.txt
執行以上命令,沒有任何顯示,這就對了,Unix的哲學是“沒有消息就是好消息”,說明添加成功;
第二步,用命令git commit
告訴Git,把文件提交到倉庫:
git commit -m "white a readme file"
-m
後面輸入的是本次提交的說明,可以輸入任意內容,這樣方便自己從歷史記錄裏面找到改動記錄,也方便別人閱讀;
git commit
命令執行成功之後會告訴你:
1 .1 file change
:1個文件被改動(我們新添加的readme.txt文件)
2. 2 insertions
:插了兩行內容(readme.txt有兩行內容)。
爲什麼Git提交需要add
和commit
兩步呢?因爲commit
可以一次提交很多文件,所以可以多次add
不同的文件,如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 file"
總結
初始化一個Git倉庫,使用git init
命令。
添加文件到Git倉庫,分兩步:
使用命令git add <file>
,注意,可反覆多次使用,添加多個文件;
使用命令git commit -m <message>
,完成。