Koala Surgeon
Koala Surgeon :
{{ t.text }}
Koala Surgeon :
...思考中
Repo: {{ repos[confirmModal.key] && repos[confirmModal.key].label }}
檔案數: {{ confirmModal.files.length }}
Commit message:
{{ confirmModal.message }}
以下檢查項目顯示紅燈,代表繼續 commit/push 很可能導致 diverge、conflict、或資料遺失:
建議先按 🩹 一鍵修復 / 🔓 Unlock / ↓ Pull 處理,再重跑 Preflight。
| Stage | Stash | |
|---|---|---|
| 一句話 | 下一次 commit 要收這些檔案 | 這些變動先放一邊,我等會再決定 |
| 指令 | git add <file> |
git stash / git stash pop |
| 下一步 | 被 git commit 收走 → 變成 commit |
被 stash pop 拿回來繼續改 |
| 會 push 嗎 | commit 後會 | ❌ 不會(stash 只存在本地) |
| 數量 | 只有一個 index(當前) | 可以有多個(stash@{0}, stash@{1}, ...) |
結帳比喻: Stage = 輸送帶上等掃碼(掃完就買單); Stash = 放回小籃子先(等會兒再說)。
| 情境 | 改到一半,另一台裝置 push 了新東西,你想 pull 下來但不想 commit 半成品 |
|---|---|
| 怎麼做 | 📦 Stash → 💾 Stash current ➜ ↓ Pull ➜ 📦 Stash → Pop 那一筆 |
| 情境 | 發現你在錯的分支改東西(例如 main 上改了 feature 的東西) |
| 怎麼做 | 📦 Stash save ➜ 🌿 Switch 到對的分支 ➜ Stash pop |
可以想成「平行時空」— 每個分支是獨立的 commit 序列。 切過去時 working tree 會變成那個分支的最新樣子。
| Merge | Rebase | |
|---|---|---|
| 行為 | 保留兩邊歷史,加一個 merge commit 把它們接起來 | 把你的 commit 一個個「搬過去」疊在另一條分支後面 |
| 歷史線 | Y 字形(看得到分叉) | 直線(像從來沒分叉過) |
| 安全性 | ✅ 安全,不改已有的 commit | ⚠ 會改寫 commit 歷史,push 過的話別人會亂 |
| 建議 | 多人協作時用這個 | 只有自己用的 feature branch 才用 |
merge / rebase / pull 時,如果同一行兩邊都改了不同內容, Git 不知道要留哪邊,就會停下來等你決定。這時:
git add)| Tag | Branch | Stash | |
|---|---|---|---|
| 一句話 | 永遠指向那一個 commit 的書籤 | 還會往前走的開發線 | 抽屜裡的暫存工作 |
| 會動嗎 | ❌ 立了就定住(歸檔用) | ✅ 每 commit 往前跑 | ⏳ 不動,等你 apply/pop |
| 典型用途 | 版本號 v1.0、歸檔 archive/xxx |
feature 開發、bugfix | 「我改一半想去別的分支」 |
| 怎麼建 | 🏷️ Tags → 輸入名稱 → Create | 🌿 Branches → Create & switch | 📦 Stash → Stash current |
Annotated vs Lightweight tag: 留了說明文字 → annotated(帶日期 + 作者,可被 GPG 簽章), 沒說明 → lightweight(只是個純指標)。一般要歸檔建議 annotated。
Create & push:tag 只建在本地,要讓別台機器也看得到請用此按鈕;
或建好後可在後端用 git push origin refs/tags/<name>。
Del +remote 才會把 origin 上的也刪掉。
下方的 AI Console 是一個「Git 教練」:會看你目前兩個 repo 的真實狀態 (branch、變動檔、stash、tag、ahead/behind、衝突…),用中文告訴你 「現在該按哪個按鈕」。適合卡住不知道下一步的時候問它。
Cmd/Ctrl + Enter 直接送出