GIT--創建版本庫

什麼是版本庫呢?版本庫又名倉庫,英文名repository,你可以簡單理解成一個目錄,這個目錄裏面的所有文件都可以被Git管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時候可以“還原”

所以,創建一個版本庫非常簡單,首先,選擇一個合適的地方,創建一個空目錄
在這裏插入圖片描述

pwd命令用於顯示當前目錄,在我的Windows上,這個倉庫位於/e/learngit

如果你使用windows系統,爲了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不包括中文

第二步,通過git init命令把這個目錄變成Git可以管理的倉庫

在這裏插入圖片描述

瞬間Git就把倉庫創建好了,而且告訴你是一個空的倉庫(empty Git repository),細心的讀者可以發現當前目錄下多了一個.git的目錄,這個目錄是Git來跟蹤管理版本庫的,沒事千萬不要手動修改這個目錄裏面的文件,不然改亂了,就把Git倉庫給破壞了。
更準確的說法是.git目錄爲版本庫,learngit爲工作區(工作目錄,不包括.git目錄)
Git的一個顯著特點是,版本庫位於工作區的根目錄下。對於Git來說,版本庫位於工作區根目錄下的.git目錄中,且僅此一處,在工作區的子目錄下則沒有任何其他跟蹤文件或目錄。
在這裏插入圖片描述

如果你沒有看到.git目錄,那是因爲這個目錄默認是隱藏的。

也不一定必須在空目錄下創建Git倉庫,選擇一個已經有東西的目錄也是可以的,不過,不建議你使用自己正在開發的公司項目來學習Git。


把文件添加到版本庫

首先這裏再明確一下,所有的版本控制系統,其實只能跟蹤文本文件的改動,比如TXT文件,網頁,所有的程序代碼等,Git也不例外,版本控制系統可以告訴你每次的改動,比如在第5行加了一個單詞“Linux”,在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進制文件,雖然也能由版本控制系統管理,但沒法跟蹤文件的變化,只能把二進制文件每。次改動串起來,也就是隻知道圖片從100KB改成了120KB,但到底改了啥,版本控制系統不知道,也沒法知道。

不幸的是,Microsoft的Word格式是二進制格式,因此,版本控制系統是沒法跟蹤Word文件的改動,前面我們舉的例子只是爲了演示,如果要真正使用版本控制系統,就要以純文本方式編寫文件。

因爲文本是有編碼的,比如中文有常用的GBK編碼,日文有Shift_JIS編碼,如果沒有歷史遺留問題,強烈建議使用標準的UTF-8編碼,所有語言使用同一種編碼,既沒有衝突,又被所有平臺所支持。

千萬不要使用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倉庫,需要經歷三個狀態

工作區:工作區指的是我們本地工作的目錄,比如我們可以在剛纔創建的learngit目錄下新增一個readme文件,readme文件這時只是本地文件系統上的修改,還未存儲到git

暫存(索引)區: 暫存實際上是將我們本地文件系統的改動轉化爲git的對象存儲的過程

倉庫:git commit後將提交對象存儲到本地git倉庫
在這裏插入圖片描述

把一個文件放到Git倉庫只需要兩步

第一步是用git add命令,實際上就是把文件修改添加到暫存區;將本地文件系統的改動轉化爲git的對象存儲

$git add readme.txt

執行上面的命令,沒有任何顯示,這就對了,Unix的哲學是“沒有消息就是好消息”,說明添加成功了

第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到git本地倉庫

在這裏插入圖片描述

簡單解釋一下git commit命令,-m後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄裏方便的找到改動記錄

git commit命令執行成功後會告訴你,1 file changed:一個文件被改動(我們新添加的readme.txt文件);2 insertions:插入了兩行內容(readme.txt有兩行內容)

commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

git add file1.txt

git add file2.txt file3.txt

git commit -m “add 3 files”

再通過git pull拉取最新的版本,合併本地倉庫的修改後,通過git push命令就可以把本地倉庫的代碼推送到遠程倉庫中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章