git 入門教程之本地倉庫

雪之夢技術驛站發表於2019-03-18

本地倉庫

背景

建立工作目錄

平時工作時我們習慣對文件分門別類進行管理,.doc .txt 等文字型別的檔案習慣存在 doc檔案下,開發java js 等原始碼檔案存在在 src 目錄下,這一點很好理解,那麼講解 git的專案我們也要建立一個資料夾,姑且新建一個demo的資料夾吧!

# 在工作空間建立指定目錄
mkdir demo

# 切換至工作目錄
cd demo
複製程式碼

建立本地倉庫

既然已經建立了工作資料夾,那麼我們自然是希望該檔案下的所有檔案都能被 git 管理,也就是說在當前檔案下的建立新檔案,修改原檔案內容或者刪除檔案等操作都能納入版本控制中,不然為什麼要用git 呢?

下面這個命令就是告訴git 這個 demo 目錄要納入版本控制了.

# 初始化本地倉庫
git init 
複製程式碼

一旦執行git init 命令,細心的讀者可能會發現在原來的 demo 目錄下多了.git隱藏檔案,正因如此,原來被我們稱為工作目錄的 demo 才能納入版本控制,我們將.git目錄稱之為版本庫.

由於當前專案 demo 只在我們自己電腦上,其他人無法訪問,所以我們稱這種形式的版本庫為本地倉庫.

新增檔案到版本庫

首先明確的是,所有的版本控制系統只能追蹤文字檔案的改動,文字檔案就是平常熟悉的.txt .html .js .css .java .xml等等檔案,非文字檔案的其他格式有哪些? 例如二進位制檔案,像我們平時聽音樂的.mp3,看視訊的.mp4,瀏覽圖片的.png等這些都是二進位制檔案,需要專門的軟體才能正常開啟,不信的話,你用記事本看看能不能開啟視訊?

瞭解文字檔案二進位制檔案的區別,那是不是說二進位制檔案沒法進行版本控制了,剛才你不是還說demo 目錄下的所有檔案嗎?這不是自相矛盾嗎!

非也非也,git 當然也能夠管理二進位制檔案,對於文字檔案的追蹤,可以細粒度到哪個檔案在哪一行發生了哪些變化,而二進位制檔案只能粗粒度知道哪個檔案變化了,並不知道具體變化.

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

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

言歸正傳,現在我們在demo 目錄下建立一個test.txt 演示檔案,內容如下git test

# 建立新檔案
touch test.txt

# 編輯新檔案,輸入 git test
echo "git test" > test.txt
複製程式碼

接下來我們還需要兩步操作才能將test.txt納入git管理:

第一步,使用git add <file> 命令將檔案新增到本地倉庫:

# 新增到本地倉庫: 第一步指定要新增的檔案
git add test.txt
複製程式碼

第二步,使用git commit -m <message> 命令將檔案提交到本地倉庫:

# 新增到本地倉庫: 第二步指定新增檔案備註
git commit -m "add test.txt"
複製程式碼

經過上述兩步操作,test.txt 檔案已經納入到版本控制中了,這裡你可能會有疑問了為什麼需要add commit兩步呢? 因為commit 可以一次性提交很多檔案,所以你可以多次add不同的檔案,比如:

# 建立三個檔案file1.txt file2.txt file3.txt
touch file1.txt file2.txt file3.txt

# 新增一個檔案file1.txt
git add file1.txt

# 新增兩個檔案file2.txt file3.txt
git add file2.txt file3.txt

# 一次性提交全部檔案
git commit -m "add 3 files."
複製程式碼

小結

  • 初始化本地倉庫 git init
  • 新增檔案到本地倉庫分兩步 git add <file>git commit -m <message>
  • 實際工作中,大致以下流程
# 在工作空間建立指定目錄
mkdir demo

# 切換至工作目錄
cd demo

# 初始化本地倉庫
git init 

# 建立新檔案
touch test.txt

# 編輯新檔案,輸入 git test
echo "git test" > test.txt

# 新增到本地倉庫: 第一步指定要新增的檔案
git add test.txt

# 新增到本地倉庫: 第二步指定新增檔案備註
git commit -m "add test.txt"

...

# 繼續編輯目標檔案,追加 git init
echo "git init" >> test.txt

# 將目標檔案新增到本地倉庫
git add test.txt

# 新增本次新增檔案的備註
git commit -m "add git init"

複製程式碼

相關文章