# 替店裡改網站，前一版別被蓋掉：用 Orca 留兩份方案再選

- 網址：https://blog.valenvan.uk/posts/stablyai-orca.html
- 發布日期：2026-10-27
- 測試設備：Mac mini M4 Pro（12 核、64GB）
- 專案：stablyai/orca（https://github.com/stablyai/orca），MIT 授權
- 測試版本：Orca 1.4.214 / ce4e0579
- 實測影片：https://www.youtube.com/shorts/gdkx8XMy7NA

## 重點摘要

- 2026-10-27 以 Orca 建立兩個工作副本，手動把自製首頁改藍與改紅，兩份修改各自保留。
- 同一測試中，原始首頁內容未變。
- 額外把互斥配色合併時，index.html 同一行發生衝突，Git 回傳 1。
- 本次沒有測 AI 生成、手機配對或遠端功能。
- **結論：** 工作副本能保留不同方案；最後採用哪種設計仍需自行選擇。
- **適合：** 已用AI或自己修改網站、需要保留多個方案比較的人
- **不適合：** 希望完全不碰網站檔案或版本選擇、按一下就自動完成設計的人

| 實測項目 | 結果 |
|---|---|
| 手動改色 | 2/2 版本保留 |
| 原始首頁 | 內容未變 |
| 雙版合併 | index.html 同一行衝突；回傳1 |

替店裡改首頁，藍色看起來清爽，紅色又很醒目。兩種都想看看，直接改同一份檔案，上一個配色就不見了；想比較，還得改回去。真正需要的不是「把兩個顏色混起來」，而是先保留兩份可以各自修改的方案，等看過再決定。

Orca 給使用 AI 寫程式、改網站的人集中管理不同工作。這篇只驗證其中的工作副本功能：它在同一個專案裡，替不同任務安排各自的位置，像分開的工作桌。影片裡的店家是帶入用途的情境，實測材料則是自製的單行首頁，不是聲稱替某家真實店面完成網站。

我們用 Orca 開兩個副本，手動把同一個標題分別改藍、改紅。結果兩份修改各自留下，原始首頁也沒被動到。再刻意把兩個互斥配色合進第三份，才出現衝突。這是兩個不同問題：分開保留可以成功；同一位置最後用哪種設計，還是要由人選。沒有登入 AI 訂閱，沒有測 AI 生成品質，下面不把改色結果當成 AI 協作效率。

## 版本、設備與安裝

測試日期是 2026 年 10 月 27 日，使用 Orca 1.4.214、原始碼版本 ce4e0579。測試設備為 Mac mini M4 Pro（12 核、64GB）；受測執行環境是 Debian arm64，Node 24.22.1、pnpm 12.14.0。這次從原始碼編譯 CLI 與應用程式，沒有另測桌面下載版。

一般使用者可從[官方下載頁](https://onorca.dev/download)取得安裝程式，開啟 Orca，依設定頁的 Orca CLI 選項註冊命令。官方文件指出 Linux 安裝版命令叫 `orca-ide`，以免與螢幕閱讀器撞名。下面保留本次編譯版的 `orca-dev` 名稱；安裝版請換成對應命令，並先確認 Orca 已在執行。

從原始碼安裝時，我們先遇到 Node 版本不符；補到 Node 24 後，原生模組檢查又因缺少 `libnspr4.so` 失敗。補齊 NSPR、NSS、GTK 等系統相依套件後，重新安裝通過，CLI 與應用程式建置也成功。這是本次執行環境的安裝問題，不能據此認定所有使用者都會遇到。

## 建立兩個工作副本

以下在新的示範資料夾執行，Python 3 只用來讀取 CLI 回傳的 JSON。實際測試的首頁只有一行標題，讓結果容易核對：

```bash
mkdir demo-shop
cd demo-shop
git init
git config user.name Demo
git config user.email demo@example.invalid
printf '<h1>Shop</h1>\n' > index.html
git add index.html
git commit -m initial

orca-dev repo add --path "$PWD" --json > repo.json
RID=$(python3 -c 'import json;print(json.load(open("repo.json"))["result"]["repo"]["id"])')
orca-dev worktree create --repo "id:$RID" --name blue-page --no-parent --json > blue.json
orca-dev worktree create --repo "id:$RID" --name red-page --no-parent --json > red.json
```

兩份 JSON 裡的 `result.worktree.path` 是各自的工作位置，不要把示範機的絕對路徑照抄到自己的電腦。接著在兩個副本寫不同配色，並保留原始首頁供比較：

```bash
python3 - <<'PY'
import json
from pathlib import Path
a = Path(json.load(open('blue.json'))['result']['worktree']['path'])
b = Path(json.load(open('red.json'))['result']['worktree']['path'])
(a/'index.html').write_text('<h1 style="color:blue">Shop</h1>\n')
(b/'index.html').write_text('<h1 style="color:red">Shop</h1>\n')
print('BLUE:', (a/'index.html').read_text())
print('RED:', (b/'index.html').read_text())
print('ORIGINAL:', Path('index.html').read_text())
PY
```

![兩個副本分別保留藍色與紅色標題，原始首頁未變](https://blog.valenvan.uk/img/stablyai-orca-article_1.png)

## 分開修改通過，合併還要選版

| 實測項目 | 結果 |
|---|---|
| 藍、紅副本的修改 | 2/2 各自保留 |
| 原始首頁 | 仍是未加配色的 Shop |
| 兩版合併 | index.html 同一行發生衝突 |

我們把兩份修改各自提交，再於第三個工作副本先合藍版、再合紅版。第二次合併出現 `CONFLICT (content)`，Git 回傳 1，衝突檔案是 `index.html`。若要重現，第三副本需從原始提交建立，並使用 `worktree create` 回傳的分支名稱；本次分支是 `Demo/blue-page` 與 `Demo/red-page`：

```bash
BLUE=$(python3 -c 'import json;print(json.load(open("blue.json"))["result"]["worktree"]["path"])')
RED=$(python3 -c 'import json;print(json.load(open("red.json"))["result"]["worktree"]["path"])')
for DIR in "$BLUE" "$RED"; do
  git -C "$DIR" add index.html
  git -C "$DIR" commit -m color
done
orca-dev worktree create --repo "id:$RID" --name integration --no-parent --json > integration.json
INTEGRATION=$(python3 -c 'import json;print(json.load(open("integration.json"))["result"]["worktree"]["path"])')
cd "$INTEGRATION"
git merge Demo/blue-page --no-edit
git merge Demo/red-page --no-edit
git diff --name-only --diff-filter=U
```

![同一行分別改成兩個顏色，第二次合併出現衝突](https://blog.valenvan.uk/img/stablyai-orca-article_2.png)

遇到這個結果，先打開 `index.html`，決定採用哪個顏色、整理衝突標記，再提交；若只是練習，可用 `git merge --abort` 放棄本次合併。分支名稱、工作路徑會依自己的設定不同，不要把範例當成固定值。

## 比較完，怎樣才算收尾？

先打開藍版與紅版的首頁比較，決定採用哪個設計；不要因為兩個方案都保留下來，就把它們全部往主稿合。上面的第二次合併是刻意測邊界，並不是選版的必經步驟。這份示範只有一個標題，兩邊對同一行提出不同改法，因此 Git 不會替使用者判斷哪個比較好看。

練習遇到衝突時，最容易理解的處理方式，是把 `index.html` 整理成你選定的那一版，刪除 `<<<<<<<`、`=======`、`>>>>>>>` 這些衝突標記，再檢查預覽。確認內容後，執行 `git add index.html` 及 `git commit -m "choose homepage color"` 完成這次合併；不想繼續則執行 `git merge --abort`。這一段是後續操作指引，本次保存的收據只到衝突出現，沒有冒稱另外完成解衝突或公開上線。請先在練習專案熟悉流程，別拿正式首頁當第一個測試。

我會用它保留幾個網站方案再比較，尤其是已經用 AI 改程式、同時試不同方向的人。只改一小段文字，不一定需要多開工作；完全不熟悉網站檔案與 Git 的人，也不能把 Orca 當成按一下就完成設計的工具。這次確定的是兩份修改沒有互相覆蓋；沒有量到節省多少時間，也沒有測手機配對、遠端連線、大型專案與付費服務。

專案：[stablyai/orca](https://github.com/stablyai/orca)，MIT 授權。本文依 2026-10-27 留存的 README、CLI 說明與原始實測收據整理；[官方 CLI 說明](https://www.onorca.dev/docs/cli/overview)列出完整命令。本篇是舊片退修後的教學重整，沒有為了錄影重新執行外部操作。
