Git — 設定 Git

再開始 Git 之前我們需要設定一些東西,讓我們手把手來設置吧!

Jeremy Xue
Jeremy Xue ‘s Blog
7 min readDec 11, 2018

--

前言:

在這邊開始前,希望各位讀者能夠先熟悉終端機(Terminal)常用的指令,熟悉這些指令才不需要再切換資料夾或是新增刪除修改檔案的時候,還需要回頭看這些指令,至少學會基本的指令在之後使用 Git 時候會方便許多。當然可以也可以看一下文字編輯器如何使用,例如:使用 Vim 開啟檔案編輯內容等等,存檔並離開。

⎮ 使用者設定

首先我們需要設定使用者的信箱以及使用者名稱,讓我們打開終端機輸入:

$ git config --global user.name "使用者名稱"
$ git config --global user.email "使用者信箱"

接著我們可以透過 config --list 來確認目前的設定:

user.name=使用者名稱
user.email=使用者信箱

然後關於指令縮寫或是其他編輯器的設定可以查看下列文章:

⎮ 初始化 Git

首先讓我們到桌面新增一個資料夾,並且我們使用它作為我們 Git 的目錄,順便複習一下 terminal 的指令:

$ cd Desktop/        // 切換到桌面
$ mkdir GitPractice // 建立 GitPractice 目錄
$ cd GitPractice // 切換到 GitPractice 中
$ git init // 初始化目錄,讓 Git 開始進行版本控制

如此一來 Git 就對開始對這個 GitPractice 進行版控,如果我們不想要讓這個目錄被 Git 控制,我們只需要把這個目錄中的隱藏檔 .git 目錄移除即可。

因為 Git 的版控全都是靠著 .git 目錄在記錄,所以如果目錄中檔案的任何改動都可以進行恢復,但是一旦這個 .git 目錄被刪掉後,就都無法恢復了。

⎮ 把檔案加到 Git

$git status

● 查看目錄狀態

我們在操作 Git 的時候,常常會使用 git status 這個指令來查看目前這個 git 目錄的狀態,也就是「改動」了什麼。所以我們先在先嘗試輸入一次:

你會看到它會說在 master 的分支(branch)上,還沒有提交(commit)以及沒有東西需要 commit。所以接下來我們在這個目錄中新增一個檔案:

// 新增一個 hello 的 txt 文件,並在其中設置內容 "Hello, World"
$echo "Hello, World" > hello.txt
// 可以使用 ls 指令查看目錄下的文件,來檢查是否新增成功

接著我們在輸入一次 git status 查看目錄狀態:

前面的兩個訊息依然沒有改變,但是最後的訊息變為 Untracked files,它告訴我們可以使用 git add <file> 來包含我們將要 commit 的東西。所以這時我們可以使用這個指令讓 git 追蹤這個檔案:

● 將檔案加入暫存區

$git add

這時你會看見我們的 hello.txt 這個檔案的狀態從 untracked 變成 new file 了。這時候表示我們的檔案被放到暫存區( Staging Area )。

那假設你今天有許多檔案需要放到暫存區的話,我們能夠使用:

$git add *.txt    // 將副檔名為 .txt 的檔案加入暫存區
$git add --all // 將全部的檔案加到暫存區
$git add . // 將全部的檔案加到暫存區

這邊你會發現我們有兩個指令都是把全部的檔案放到暫存區,但是這兩者有一些不同的地方:

  • git add . :執行這個指令時,它會將此專案目錄底下的全部的子目錄、子子目錄…全都加入暫存區,在這個目錄以外的更動都不管。
  • git --all :當我們執行這個指令時,不管目前在哪個專案目錄下的哪一層執行,效果都是一樣的,此專案目錄下的所以更動都會被加入暫存區。

所以當位置都在專案根目錄底下執行時的效果是相同的。但是在某些版本(git 1.x)這兩者指令還是會有些為差距。

● 將暫存區檔案提交到儲存庫儲存

$git commit

在前面我們執行 git add 的指令只有把檔案加入暫存區追蹤,但這樣還不算完整整個 git 的流程。如果真的要讓暫存區的檔案永久的存下來,我們會使用 git commit 指令將到提交到儲存庫(Repository)儲存:

我們在 git commit 指令後加上 -m "init commit" 其實就是在說標示這次提交的訊息,可以在 -m 後加上這次改動的訊息,簡單扼要的說明這次更動的內容即可。

其實我們每次執行 git commit 指令都是把暫存區中的內容提交到倉庫儲存。所以如果這時還沒將檔案加到暫存區,那麼就不會提交到儲存庫中。

注意!直到完成 commit 才算完成一個 完整的 Git 流程 。

⎮ 關於 Commit

● Commit 訊息重要嗎?

你可以想像 commit 訊息就是在告訴自己或是團隊這次 commit 的版本做了什麼變動,因此我們很容易就能看出每個版本做了什麼事情,在之後回復版本的時候也能快速地回到我們想要的版本。

所以盡量的使用簡單、清楚的描述來說明這次做了什麼,例如:修正首頁 CollectionView UI新增登入畫面修正登入錯誤 Bug 等等。所以如果訊息內容為: UI changedBug fixedFile was modified 我相信沒有多少人看得懂。

記住也不要使用情緒性的內容當作 commit 🤬,假如你已經 commit 過 fxxk 之類的內容請記得修正它 😏

● 輸入 commit 後跳出一個莫名的視窗

在我們輸入 commit 後,如果我們沒有使用 -m 加上 commit 訊息的話,預設會挑出一個叫做 Vim 的編輯器,如果是第一次使用它的人可能會不曉得如何使用:

這時候我們可以去查詢 Vim 的編輯器如何操作,這邊大概教大家一個簡單使用 Vim 進行 commit 的方式:

① 先按下鍵盤上的 i ,進入 Vim 的編輯模式,這時候你會看到 Vim 左下角會顯--Insert-- 這時候表示你成功進入編輯模式。

② 在我們的第一行輸入我們想要的 Commit 內容,結束之後按下 esc 退出編輯模式。

③ 按下鍵盤的 : 鍵,這時候會發現我們的左下角可以輸入文字,接著我們輸入 :wq,表示儲存並離開 Vim。

這時你可以看到我們成功離開了 Vim 編輯器了 🎉,所以進入到 Vim 編輯器的時候不需要害怕,用一些簡單的 Vim 指令也可以完成:

後記:

那們我們這次初入 Git 的教學就到這邊結束了,這次教的幾個 Git 指令:git statusgit add 以及 git commit 可能會是你在使用 Git 時最長會使用到的指令,學會了這一套流程你就能進行一個專案目錄中版本的提交,Git 同時也能夠對你的專案目錄進行版控了。

--

--

Jeremy Xue
Jeremy Xue ‘s Blog

Hi, I’m Jeremy. [好想工作室 — iOS Developer]