Git 基礎教學
本篇文件為原預計要在教學現場教大家,因受 COVID-19 疫情影響改為用影片教學。
因為是影片,所以可以在任何你想要的地方暫停,然後做操作。
可搭配影片: https://youtu.be/o0TCXuTfIO8
新影片(202208):https://youtu.be/Ak3w2cOS6rM
Git 簡介
Git 為目前世界上最常用的版本控制系統,通常用在資訊團隊的專案管理上,或是版本控制、合作等。
- 有了 Git 就不用複製舊版本備份,再更改新版本的情況。
- 分支系統,讓專案有平行時空,修改起來方便容易。
- 每個團隊有不同的使用方式,不用太過鑽研,以團隊使用習慣為主。
0. Git 安裝教學
官網 : https://git-scm.com/
下載及安裝
選擇 Download > 選 Windows 就會直接下載了。
Git 安裝請注意以下選項要選第二個
其他請選擇 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 分為以下兩種
- Local Repository : 本地儲存庫,在目前這台電腦上的 儲存庫。
- 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。
4.1 創建分支
建議養成一種習慣: 要改動專案以前,先創建新分支。
以下指令可以創建新分支:
git branch <分支名稱>
4.2 切換分支
以下指令可以從目前分支的 commit 點切換出新分支
git checkout <分支名稱>
以下指令可以在新增分支時馬上切換分支
只要加上 -b
的 flag 就可以囉
git checkout -b <分支名稱>
想回到 master
想回到 master 可使用以下指令:
git checkout master
列出所有分支
列出所有分支可使用以下指令:
git branch
合併分支
合併可使用以下指令:
先切換到 master 後,把其他分支合併到 master
git merge <branch-name>
5. Sourcetree 的操作
Sourcetree 為一個 git 的 GUI 圖形介面,可讓使用者方便操作 git。
5-1. Sourcetree 安裝
安裝須注意
- Skip
- 取消打勾 Mercurail
- 其他就選 Next 就可以囉!
5-2 專案開啟選項
開啟選項有三個,如下圖
- clone : 從網路下載,且開啟 Source tree 介面
- add : 匯入已經有 Git 追蹤的專案,且開啟 Source tree 介面
- create : 把專案加上 Git 追蹤,且開啟 Source tree 介面
5-3 檔案狀態管理
5-3-1 File Status 區域
- Staged Files : 已經加入到 Stage 狀態準備 Commit 的檔案
- Unstaged Files : git 系統偵測到有變化的檔案,按
+
可將檔案加入 Stage 狀態
註 : 在 Unstaged 狀態的檔案可以按右鍵 > Discard ,將該檔案回復到原本的樣子,類似後悔更變。
- 下方為 Commit 區域,可直接填入 Commit 內容後按右下角 Commit,即可完成 Commit
5-3-2 Branches 區域
Branches 區域為切換分支及合併分支的地方
- 新增分支在上面功能列的 Branch 按鈕
- 有小圓圈的分支表示目前所在分支
- 點兩下就可以切換到該分支
註 : 切換分支前,目前分支必須是要在已經有 Commit 的狀態,或是檔案還未更變的狀態。
- 合併分支 : 先切換到主要分支,按其他想要合併過來的分支右鍵 > Merge XXX Into Current Branch
6. gitignore
.gitignore
是一個檔案,他可以設定讓 git 不去追蹤該檔案。
Java 專案通常會有以下設定
參考 spring 官方建議的
(以下連結有修正,請注意一下~)
7. Sourcetree + eclipse
- 專案右鍵 > Show In > System Explorer > 到專案根目錄 > 複製路徑
- 回到 Sourcetree > + 一個 tab > Create
註: 如果本來資料夾內就有 Git 追蹤,不選擇 Create,而要選擇 Add
註: GitHub 教學請見下一篇