Noob's Space

Git 版本控制:不用備份一個又一個的壓縮檔,程式改爛了也沒關係

Git 是一套知名的分散式版本控制系統,編輯文件時,能夠在需要的時候提交檔案,以供需要的時候還原。

例如開發專案時,常常會加入新的程式碼。也許這個時候先前並沒有問題,但在新增功能或是修改 bug 的時候把整個檔案改壞了,又偏偏已經存檔了,這時候就沒救了嗎?

像我在開發 Noob Wireless Share 的時候也常常遇到這個問題,通常的解法就是整個砍掉重練(這就是 v4.0 真正的由來);但有了 Git 後,做完一個小地方就能夠提交(commit),出事的時候隨時可以把之前的程式碼叫回來,比較看看哪裡不一樣,甚至直接蓋過。

git

Git 真的這麼好用?

沒錯,Git 就是這麼好用。身為一套分散式版本系統,除了自己開發專案方便外,多人一起開發同一個專案,必要的時候還可以開啟不同的分支(branch),需要的時候再合併(merge),最後每個地方都會成功被改到,不會有前後不一致的問題。

再說,有很多有名的專案都是透過 Git 協助開發的,例如 Android、jQuery、Debian……等等。

其實 Noob 早在兩年前就想學會 Git 了,不知怎的拖到了現在。然而,我絕對不會說我是在上數學課的時候學會版本控制的概念的。

Git 實作

究竟 Git 的概念是什麼?在這之前我們就先且戰且走吧。以下先以 Rasperry Pi 2 為範例,進行安裝並實際操作。

首先,安裝 Git

apt-get install git-core

可能要加上 sudo,以 root 權限來執行。

接著,新增一個資料夾,例如 project.git。

mkdir project.git

此處資料夾以 git 結尾,僅是為了辨識這是 git 資料夾,其實不用這樣命名也是可以;另外,若要以現有資料夾進行版本控制,則可以略過此步驟。

對資料夾執行:

git init

此時此刻,你就成功建立了一個 Repo。

什麼是 Repo?Repo 是 Repository 的縮寫,指的是倉庫的意思。在 Git 裡,受版本控制的資料夾都稱作 Repository,簡稱 Repo。

這時候你就可以在這裡像平常一樣撰寫 code 了,當然也可以將已經寫好的 code 複製進來。本例中複製了一個名為 Hello.cpp 的檔案進這個資料夾裡。
以 add 指令將檔案加入監控,使其受 Git 版本控制(staged狀態):

git add Hello.cpp

一個一個把需要的檔案加進去後,可以用 git status 來查看目前待提交的檔案。

確定檔案都沒問題後,即可以進入第一次提交:

git commit -m "Initial Commit"

其中 Initial Commit 是提交註解,盡可能寫清楚這次提交的原因,以提供日後查詢。

這樣就完成了提交,透過 git log 可以查看目前的所有提交的註解和編號。

如果需要恢復到特定狀態,可以使用指令

git checkout XXXX

其中 XXXX 是剛剛看到的編號前四碼。

Git 的基本操作大概就只有這樣。趕快幫你的專案加入 Git 版本控制,尤其是大型專案或多人專案,一定會更方便、更有保障唷!

這次先介紹到這邊,之後會介紹如何以 Raspberry Pi 做為 Git 伺服器,以及 Windows 使用者如何使用 Git 最方便。

你可能會有興趣......?

  • Coin

    這個必須推(?

  • Coin

    這個必須推(?

  • Coin

    這個必須推(?

廣告