Git 基礎教學#

本篇文件為原預計要在教學現場教大家,因受 COVID-19 疫情影響改為用影片教學。

因為是影片,所以可以在任何你想要的地方暫停,然後做操作。

可搭配影片: https://youtu.be/o0TCXuTfIO8

Git 簡介#

Git 為目前世界上最常用的版本控制系統,通常用在資訊團隊的專案管理上,或是版本控制、合作等。

  • 有了 Git 就不用複製舊版本備份,再更改新版本的情況。
  • 分支系統,讓專案有平行時空,修改起來方便容易。
  • 每個團隊有不同的使用方式,不用太過鑽研,以團隊使用習慣為主。

0. Git 安裝教學#

官網 : https://git-scm.com/

下載及安裝#

選擇 Download > 選 Windows 就會直接下載了。

Git 安裝請注意以下選項要選第二個

git-install-1

其他請選擇 Next 即可。

檢查安裝#

請打開命令提示字元

輸入 git --version

您應該會看到類似以下文字,就是安裝成功囉!

git version 2.31.1.windows.1

設定使用者資訊#

請在命令提示字元內輸入以下資訊

git config --global user.name "您的英文姓名"
git config --global user.email "您的 Email"

註: 以上設定只需要一次即可,之後不用每個專案都設定。

1. Repository 儲存庫#

Repository 為一個儲存單位,通常會是一個資料夾。

Git 一次會追蹤一個 Repository 內的所有變化。

Repository 分為以下兩種#

  1. Local Repository : 本地儲存庫,在目前這台電腦上的 儲存庫。
  2. Remote Repository : 遠端儲存庫,通常會在 GitHub, GitLab, Bitbucket ... 等。 通常與人合作會儲存在遠端,要修改專案時就拉下來,然後改完再傳上去。

再目前階段,我們要先學會本地儲存庫(Local Repository),之後會再第二個影片說明遠端儲存庫。

2. 初始化 Git#

告知 Git 我們要追蹤目前資料夾所有的檔案,請打開 cmd 輸入下列指令:

git init

若初始化成功,你會發現資料夾內多了一個影藏資料夾 .git,git 會把追蹤到的變化存在裡面。

3. 認識 stage 和 commit#

  • commit 是指在 git 上記錄該時間點專案的內容,會留下時間與一段文字(文字自行輸入)。
  • stage 是指在 commit 以前放在一個暫存區,等待確認 commit。

3-1. 檢查 status#

status 表示目前檔案狀態,若有偵測到檔案新增、修改、或刪除,會是紅色狀態。 若把這些檔案加到 stage 狀態,則會變綠色呈現。

語法 :

git status

3-2. 把檔案加到 stage 狀態#

把檔案加到 stage 狀態的語法:

git add <檔案名稱>

e.g.1.

git add index.jsp

可以加多個(例如加三個):

git add index.jsp ShoppingController.java Cart.java

通常會全部都加入 stage 並等待 commit,則可使用一個點:

git add .

3-3. 產生 commit#

commit 是指在 git 上記錄該時間點專案的內容,會留下時間與一段留言(文字自行輸入)。 並會把剛剛加到 stage 的檔案,加入紀錄點(一個時間),紀錄專案更動歷史。

git commit -m "留言"

註: 留言請盡量說明這次更動的意義,例如: 修正購物車 bug,增加付款功能等

commit 成功後,該專案在該時間點的檔案狀態會被記錄起來。

3-4. commit 的歷史紀錄#

用以下指令可以查看 commit 的歷史紀錄

git log

git log 會顯示近期的每一筆 commit ,按 q 可以回到命令列

用以下指令可以讓專案回到您想要的 commit 點

git checkout <commit hash>

註: 上面的 <> 不用打

4. 分支 (Branches)#

分支可以讓專案產生一個平行時空,兩個不同的分支,不互相影響。

預設是有一支原始分支,通常該分支稱為 master 或 main。

git-branch-img

4.1 創建分支#

tip

建議養成一種習慣: 要改動專案以前,先創建新分支。

以下指令可以創建新分支:#

git branch <分支名稱>

4.2 切換分支#

以下指令可以從目前分支的 commit 點切換出新分支

git checkout <分支名稱>

以下指令可以在新增分支時馬上切換分支#

只要加上 -b 的 flag 就可以囉

git checkout -b <分支名稱>

想回到 master#

想回到 master 可使用以下指令:

git checkout master

列出所有分支#

列出所有分支可使用以下指令:

git branch

合併分支#

合併可使用以下指令:

先切換到 master 後,把其他分支合併到 master

git branch <branch-name>

5. Sourcetree#

Sourcetree 為一個 git 的 GUI 圖形介面,可讓使用者方便操作 git。

安裝須注意

  1. Skip

sourcetree-skip

  1. 取消打勾 Mercurail

sourcetree-mercurail

  1. 其他就選 Next 就可以囉!

6. gitignore#

.gitignore 是一個檔案,他可以設定讓 git 不去追蹤該檔案。

Java 專案通常會有以下設定

參考 spring 官方建議的

(以下連結有修正,請注意一下~)

spring ignore

7. Sourcetree + eclipse#

  1. 專案右鍵 > Show In > System Explorer > 到專案根目錄 > 複製路徑
  2. 回到 Sourcetree > + 一個 tab > Create

註: 如果本來資料夾內就有 Git 追蹤,不選擇 Create,而要選擇 Add