iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Mobile Development

Flutter :30天打造念佛App,跨平台應用從Mobile到VR,讓極樂世界在眼前實現!系列 第 7

[ Day7 ] Flutter Git 實戰應用篇—穿越到Coding世界的勇者啊,你骨骼驚奇需要這本秘笈(2)

  • 分享至 

  • xImage
  •  

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 CLI 是透過終端機輸入指令的方式操作Git,
相比Git GUI的圖像介面操作,剛開始使用可能會感覺比較生硬。

但Git CLI也有許多優點
功能完整:所有 Git 功能都能透過指令操作,GUI 沒有的進階功能也能使用。
精準控制:搭配參數可以做更細微的操作。
理解原理:幫助我們深入理解Git觀念,而不僅限於按鈕操作。

現在我們就來實際操作一次吧!建立念佛App的Readme並且推送到雲端。

1. 同步雲端

  • 先確保在最新版本的 main 建立新分支
git pull --ff-only 

git pull --ff-only 只在可快轉時才進行更新,可以保持本地歷史線性;
若無法快轉(兩邊都有新提交),Git 會先中止並提示我們處理(rebase 或手動合併)。
如果直接 git pull 等同 fetch + merge(預設允許快轉 fast-forward):
能快轉就快轉;不能快轉就會自動產生一個 merge commit。

2. 建立開發分支

  • 建立開發該功能或該文件的專用分支,便於審查與回溯。
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 <分支名稱>

  • 建立README
echo"#念佛App" > README.md

echo是終端機指令,會把字串輸出到檔案或螢幕。
">"代表: 原本無該檔案會直接建立,若原本已有該檔案則覆蓋。

echo將字串“#念佛App”輸出到<README.md>
若沒有<README.md>則建立一個,且第一行是"#念佛App"。
若已有<README.md>則覆蓋檔案內容,且第一行是"#念佛App"。

  • 編輯README

按 i 進入 Insert 開始編輯,完成後:Esc → :wq → Enter

vim README.md

3. 確認檔案狀態

  • 查看當前分支與工作區/暫存區的變更狀態(或detached HEAD狀態)。
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")

4. 添加暫存區

  • git add <檔案名>
git add README.md  

5. 提交本機儲存庫

  • git commit -m "提交主旨"
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 

6. 確認提交

  • 查看提交歷史
git log    

  • 查看當前提交內容
git show  

  • 查看特定commit
git show < commit SHA >

Commit SHA (Git) 可以理解為那則commit的身分證(唯一識別碼),
它是使用SHA-1 雜湊演算法計算得出的40個字元的十六進位字串。
SHA也常被簡稱為HASH字符。

7. 推送雲端儲存庫

git push <雲端儲存庫名稱> <分支名稱>

git push amitabha docs/add-readme

三、Pull Request

Pull Request 合併請求,又被稱為發PR 。
指的是對雲端儲存庫提出合併請求,要將分支的變更合併到目標分支。

Git Flow會將feat分支合併回dev分支
GitHub Flow 則是合併回main

Merge commit:保留所有 commits,多一個 merge 節點。
Squash:壓成 1 個 commit,歷史最乾淨。
Rebase and merge:線性歷史、保留每個 commit(會改 SHA)。


Day7 重點回顧

重點 內容
Git CLI 透過指令操作Git的方式
操作流程 熟悉常用指令
Pull Request 審查與合併請求

上一篇
[ Day6 ] Flutter Git 實戰應用篇—穿越到Coding世界的勇者啊,你骨骼驚奇需要這本秘笈(1)
下一篇
[ Day8 ] Flutter Git 實戰應用篇—穿越到Coding世界的勇者啊,你骨骼驚奇需要這本秘笈(3)
系列文
Flutter :30天打造念佛App,跨平台應用從Mobile到VR,讓極樂世界在眼前實現!11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言