2025 iThome鐵人賽
「 Flutter :30天打造念佛App,跨平台從Mobile到VR,讓極樂世界在眼前實現! 」
Day 7
「 Flutter Git 實戰應用篇—穿越到Coding世界的勇者啊,你骨骼驚奇需要這本秘笈(2) 」
昨天我們已經得到Git神裝的操作秘笈(1),
認識Git的圖像化介面 (GUI) ,
並且實際操作VScode Source Control 面板。
今天我們要進一步認識另一種Git的操作方式:
CLI(Command-Line Interface),
也就是透過終端機輸入指令來操作 Git。
Day7 文章目錄:
一、Git CLI
二、操作流程
三、Pull Request
Git CLI 是透過終端機輸入指令的方式操作Git,
相比Git GUI的圖像介面操作,剛開始使用可能會感覺比較生硬。
但Git CLI也有許多優點:
功能完整:所有 Git 功能都能透過指令操作,GUI 沒有的進階功能也能使用。
精準控制:搭配參數可以做更細微的操作。
理解原理:幫助我們深入理解Git觀念,而不僅限於按鈕操作。
現在我們就來實際操作一次吧!建立念佛App的Readme並且推送到雲端。
git pull --ff-only
git pull --ff-only 只在可快轉時才進行更新,可以保持本地歷史線性;
若無法快轉(兩邊都有新提交),Git 會先中止並提示我們處理(rebase 或手動合併)。
如果直接 git pull 等同 fetch + merge(預設允許快轉 fast-forward):
能快轉就快轉;不能快轉就會自動產生一個 merge commit。
git switch -c docs/add-readme main
git switch -c <分支名稱> <基底>
switch:切換分支
-c :創建新分支
也可以這樣依序下指令
git branch docs/add-readme
git switch docs/add-readme
創建分支 git branch <分支名稱>
切換分支 git switch <分支名稱>
echo"#念佛App" > README.md
echo是終端機指令,會把字串輸出到檔案或螢幕。
">"代表: 原本無該檔案會直接建立,若原本已有該檔案則覆蓋。
echo將字串“#念佛App”輸出到<README.md>
若沒有<README.md>則建立一個,且第一行是"#念佛App"。
若已有<README.md>則覆蓋檔案內容,且第一行是"#念佛App"。
按 i 進入 Insert 開始編輯,完成後:Esc → :wq → Enter
vim README.md
git status
git diff # 看工作區差異
git diff --staged # 看暫存區差異
detached HEAD:
git checkout 或 git switch --detach 切到某個特定提交時,
這種狀態就叫 detached HEAD — 代表 HEAD 沒指向任何分支,只指向該提交。
detached HEAD狀態下,繼續修改並提交新的commit,
就會形成一條獨立的歷史,因為沒有任何分支指向它們,
稱為「孤立歷史」,未來可能會被Git視為垃圾清掉。
一般而言,detached HEAD用在回溯測試、調查問題、臨時修改。
如果確定要保留這些 commit,就會建立分支來接管 HEAD,
然後合併回對應的 feature 或 main 分支。
NamoAmitabha ~/Desktop/Amitabha/amitabha git status
On branch docs/add-readme
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
git add README.md
git commit -m "docs: add README"
NamoAmitabha ~/Desktop/Amitabha/amitabha git commit -m "docs: add README"
[docs/add-readme 65c6194] docs: add README
1 file changed, 10 insertions(+), 12 deletions(-)
git reset --soft HEAD~1
git log
git show
git show < commit SHA >
Commit SHA (Git) 可以理解為那則commit的身分證(唯一識別碼),
它是使用SHA-1 雜湊演算法計算得出的40個字元的十六進位字串。
SHA也常被簡稱為HASH字符。
git push <雲端儲存庫名稱> <分支名稱>
git push amitabha docs/add-readme
Pull Request 合併請求,又被稱為發PR 。
指的是對雲端儲存庫提出合併請求,要將分支的變更合併到目標分支。
Git Flow會將feat分支合併回dev分支
GitHub Flow 則是合併回main
Merge commit:保留所有 commits,多一個 merge 節點。
Squash:壓成 1 個 commit,歷史最乾淨。
Rebase and merge:線性歷史、保留每個 commit(會改 SHA)。
重點 | 內容 |
---|---|
Git CLI | 透過指令操作Git的方式 |
操作流程 | 熟悉常用指令 |
Pull Request | 審查與合併請求 |