1.創建版本庫 (即倉庫 repository)簡單理解為一個目錄,這個目錄里的所有文件都可以被git管理起來,每個文件的修改刪除,git都能跟蹤,一邊任何時刻都可以追蹤歷史,或者在將來某個時刻可以還原
首先,在一個合適的地方,創建一個空目錄
$ mkdir learngit
$ cd learngit
$ pwd
/User/michael/learngit
pwd 命令用於顯示當前目錄。
然后,通過 git init 命令吧這個目錄變成可管理的倉庫
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
瞬間Git就把倉庫建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git
的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把Git倉庫給破壞了。
如果你沒有看到.git
目錄,那是因為這個目錄默認是隱藏的,用ls -ah
命令就可以看見。
把文件添加到版本庫
首先這里再明確一下,所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼等等,Git也不例外。版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進制文件每次改動串起來,也就是只知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道。
不幸的是,Microsoft的Word格式是二進制格式,因此,版本控制系統是沒法跟蹤Word文件的改動的,前面我們舉的例子只是為了演示,如果要真正使用版本控制系統,就要以純文本方式編寫文件。
因為文本是有編碼的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強烈建議使用標准的UTF-8編碼,所有語言使用同一種編碼,既沒有沖突,又被所有平台所支持。
言歸正傳,現在我們編寫一個readme.txt
文件,內容如下:
Git is a version control system. Git is free software.
一定要放到learngit
目錄下(子目錄也行),因為這是一個Git倉庫,放到其他地方Git再厲害也找不到這個文件。
和把大象放到冰箱需要3步相比,把一個文件放到Git倉庫只需要兩步。
第一步,用命令git add
告訴Git,把文件添加到倉庫:
$ git add readme.txt
執行上面的命令,沒有任何顯示,這就對了,Unix的哲學是“沒有消息就是好消息”,說明添加成功。
第二步,用命令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
命令,-m
后面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。
git commit
命令執行成功后會告訴你,1個文件被改動(我們新添加的readme.txt文件),插入了兩行內容(readme.txt有兩行內容)。
為什么Git添加文件需要add
,commit
一共兩步呢?因為commit
可以一次提交很多文件,所以你可以多次add
不同的文件,比如:
小結
現在總結一下今天學的兩點內容:
初始化一個Git倉庫,使用git init
命令。
添加文件到Git倉庫,分兩步:
-
第一步,使用命令
git add <file>
,注意,可反復多次使用,添加多個文件; -
第二步,使用命令
git commit
,完成。