jas0nhuang

猴子學 git (一) 基本概念與本地端操作

不想看一堆廢話可以直接看小抄

先看看大概八年前Linus在”股溝技術講座”的演講 Tech Talk: Linus Torvalds on git,真的有興趣的人可以仔細看看,對版本控制完全沒有概念的猴仔第一次看完全不知他在公三小,用過一陣子 Git再回頭看一次才有些微領會,影片大意其實就是「Linus找不到一個好用的版本控制軟體管理Linux核心,所以自已寫了一個 Git,因為 Git的優點實在罄竹難書,所以只有又笨又醜的人才會選擇其它工具!」

安裝

下載與安裝還要教嗎?官網下載連結: git logo。然後就是下一步、下一步、下一步……
使用的系統不同設定會有一些不一樣,終端機的狀態也會有些差別,但是應該是不會太難,有問題就股溝一下,或者留個言看我有沒有辦法幫忙解決。

幾個 Git基本概念

只追蹤純文字檔案變化

Git的版本控制只能追踨純文字檔的變更,其它類型文件當然也可以加入 Git資料夾/程式庫,只是 Git沒辦法正確處理他們的版本狀態。

本地(locale)與遠端(remote)

Git的出發點就是要讓大家都能不必連線就在自已的電腦(本地)工作,完成後再推送到伺服器上(遠端),所以本地與遠端的概念是很重要的,第一篇文章只介紹 Git最基本的使用方式,為了不要太混亂,所以只說明本地程式庫的工作方法,之後再慢慢介紹如何與遠端程式庫連接。

開始用 Git工作

開始工作需要有一個程式庫,這個程式庫可以是全新的程式庫,可以是已經有檔案的資料夾,也可以是自已或別人建立,已經有 Git管理的程式庫,可以在本地端操作也可以遠端操作,以下就說明如何在本地新建程式庫:

本地端創建程式庫

非常簡單,找到一個你想要儲存程式庫的資料夾,找到這個資料夾路徑,然後初始化 (initialize) Git:

git init "資料夾路徑"
cd "資料夾路徑"

(嗯……應該知道要把資料夾路徑改成資料夾路徑吧?!)
上面資料夾路徑如果不存在的話, Git會自動新建一個。 Git會在指定資料夾裡自動創建一個隱藏資料夾 .git,所以通常你看不到有任何動靜;無論如何現在您就可以在這個程式庫裡開始工作。
順道一提,這個新的程式庫不一定要是空的資料夾,也可以是原來就有資料的資料夾,寫一半的專案、報告,個人網站備份……等。只要是你想用 Git管理的資料夾,就 git init "資料夾路徑"就對了。

基礎本地端操作

有程式庫之後就可以開始工作了,寫程式、寫文章、修改報告……,工作完成之後,使用 Git管理最基本的幾個指令:

加入(add)

加入會讓 Git開始追踨資程式庫裡新增的文件,加入也等於通知 Git某些檔案的有變化,所以除了新建立的文件要加入,檔案每次修改過之後也都要執行,不然在之後推送的時候就不會被送出,檔案加入追踨的指令如下:

git add "檔案名稱"  #加入特定檔案
git add * #加入所有新增或已修改檔案

檔案會被加入 Git的索引(index)裡,並且被放入暫存區(staging aera),等待被提交。

提交(commit)

提交被加入(add)暫存區的檔案,指令如下:

git commit

輸入指令後會進入提交訊息畫面,要求輸入提交訊息,按照如何寫 Git提交訊息Git提交時的好習慣五個改善提交訊息的小技巧……等文章的論點,寫個好提交訊息應該就能上天堂了,他們甚至一致反對如:git commit -m "提交訊息"這種偷懶超方便的指令。
總之,寫些自已看的懂的提交訊息對之後版本管理還是有幫助的。

移除(rm)

如果想要讓 Git不再追踨某一個檔案,可以使用移除指令,要注意的是,如果只是單純執行git rm "檔案名稱"那這個檔案不只不會再被 Git追踨,同時會從程式庫裡被刪除,效果就像 Linux命令列的 rm指令一樣,如果只是想把檔案從 Git的索引裡移除,可以執行git rm --cached "檔案名稱",這樣檔案還是會留在資料夾內,但是就不會再被 Git追踨了。

下面這個流程圖是以官方電子書Pro Git裡的附圖改編的,我覺得蠻清楚的描繪出 Git本地端運作狀況。

Gitflow

參考資料

Pro Git
git - the simple guide
git-tips
為你自已學 Git
連猴子都能懂的 Git入門指南