生活分享

跨裝置交接:核對檔案與環境

追蹤對話、主機、工作目錄與分支,用交接紀錄確認接續的是同一份工作。

閱讀時間約 12 分鐘 · 操作 25 分鐘

原創流程示意圖,非產品介面截圖。
圖片:Mokaair (© Mokaair)
本篇目錄
  1. 目標:換裝置後仍能確認同一份工作
  2. 步驟一:留下可核對的交接紀錄
  3. 步驟二:換控制裝置,先做新讀取
  4. 步驟三:用版本變動抓出舊內容
  5. 進一步:真正把任務 Handoff 到另一主機
  6. 常見問題與完成判準

目標:換裝置後仍能確認同一份工作

先分開三件事:你拿在手上的控制裝置、對話所在的任務、實際提供檔案與終端機的主機。手機換成筆電,可能只是換了控制裝置;把任務 Handoff 到另一主機,才改變執行位置。雲端又是另一種環境。只看到相同任務標題或相同資料夾名稱,不能判斷目前讀到哪一份資料。

本篇流程圖的 1 代表確認主機與工作目錄,2 代表送出一次新的唯讀要求,3 代表用檔案內容核對結果。三個步驟依序完成;看到主機出現在清單,只完成第 1 步的一部分,還不能證明第 2、3 步成功。

動作執行位置檔案如何取得
手機 Remote 接續原連接主機直接讀該主機檔案
另一桌面控制同主機原連接主機仍用該主機的專案
Handoff 到另一主機目的主機的工作樹移交任務與 Git 狀態後再核對
新雲端任務雲端環境從選定儲存庫版本建立

步驟一:留下可核對的交接紀錄

在建立的 codex-remote-lab 裡,確認 host-marker.txt 有 REMOTE-LAB-A 和 Revision: 1,request.txt 保持原樣。主機上用文字編輯器新增 handoff.md,依下面範本填入自己看到的結果。主機名稱可用自訂代號,私人絕對路徑只留在自己的紀錄,不要直接放到公開截圖。

主機檔案範本:填妥後存為 handoff.md · markdown
# Remote reading handoff

Goal: read this practice folder without modifying files.
Controller: record the device currently sending requests.
Execution host: record the host shown by Remote.
Project: codex-remote-lab
Working directory: record the actual directory reported by the host.
Task: record the exact task title or identifier.
Marker: REMOTE-LAB-A / Revision: 1
Git state: not initialized for this basic Remote exercise.
Verified: record only checks actually performed, with time.
Pending: fresh read from the second controller.
Next action: read host-marker.txt again and compare the revision.

這是要填寫的表單,不能原封不動把 record… 當成已驗證內容。任務標題相同時,用介面能提供的識別方式、專案和最近訊息一起核對;若無法取得內部 ID,記下可辨識的實際標題與時間即可。此練習還沒有 Git,所以寫明未初始化;不要杜撰分支或 commit。正式 Git 專案則另外記分支、commit 與未提交差異。

步驟二:換控制裝置,先做新讀取

從手機 Remote 選原主機與原任務。若改用另一部支援的 Mac/Windows 桌面版,到 Settings → Connections → Control other devices 加入該主機,完成配對後開同一任務;這個入口依推出範圍可能尚未出現,沒有時先用已配對手機完成練習。每個控制裝置都需與要控制的主機建立連線,不能只靠相同登入推定已配好。

先看交接紀錄,不立刻要求寫檔。在新的控制裝置送出下列要求,確認回覆真的來自當下讀檔。正常應報 REMOTE-LAB-A、Revision: 1、目前目錄,以及正在原主機執行。主機名若工具無法取得,應說無法確認,再由你對照 Remote 介面;不應把檔案內的 REMOTE-LAB-A 冒充真實電腦名稱。

自然語言提示詞:從接手的控制裝置送到原任務 · text
Continue this exact Remote reading task. Read handoff.md and host-marker.txt from disk now, without modifying files. Report the current working directory and both marker lines. Identify the execution host if the tools expose it; otherwise state that it is unverified. Distinguish this fresh read from facts copied from earlier messages.

步驟三:用版本變動抓出舊內容

回主機的文字編輯器,只把 host-marker.txt 第二行改為 Revision: 2 並儲存,保留第一行和 request.txt。不更新 handoff.md,讓它暫時保留舊紀錄,再從另一控制裝置要求重新讀兩個檔案。預期它指出實際檔案是 2,而交接文件仍是 1;若只照聊天回覆 1,先核對資料夾、主機與是否真的重新讀檔。

自然語言提示詞:在同一個手機 Remote 任務輸入 · text
Read host-marker.txt and handoff.md again from the current project. Compare their revision values. Report any disagreement; do not assume the handoff note is newer than the file. Do not edit either file.

確認差異後,由你把 handoff.md 的 Marker 更新為 2,並在 Verified 寫明這次由哪個控制裝置、何時完成新讀取。只記錄看到的結果,不填「測試全部通過」,因為這次並沒有執行程式測試。要還原練習時,將標記與紀錄一起改回 1,再讀一次確認;這種精確還原不會撤銷其他程式或遠端任務。

進一步:真正把任務 Handoff 到另一主機

前面只換控制裝置。若需要讓別臺電腦接手執行,先看,準備一個獨立 Git 練習儲存庫。來源與目的主機都需連接,並保存同一個 Git 儲存庫的專案;如果來源選的是儲存庫內子資料夾,目的也要保存對應子資料夾。目的地沒有相符專案時,先補設定,不是改任務名稱就能匹配。

在來源專案的終端機執行下面的唯讀 Git 命令,保存輸出及重要差異。這些命令適用 Windows PowerShell、macOS、Linux 終端機,但要先進到正確練習儲存庫。若顯示 not a git repository,這不是可繼續 Handoff 的 Git 起點。分支空白可能是 detached HEAD,應記錄 commit 並理解狀態,不要憑空補一個分支名。

主機終端機:在真正執行工作的 Git 練習儲存庫查詢 · sh
git rev-parse --show-toplevel
git rev-parse HEAD
git branch --show-current
git status --short
git diff --stat
git diff --cached --stat
git ls-files --others --exclude-standard

同一個 commit,不代表交接內容完整

上面的查詢分別記錄 Git 根目錄、commit、分支、狀態、未暫存差異、已暫存差異及未追蹤檔案。git diff --stat 不包含已暫存或未追蹤內容;只記這一行會漏掉工作。若有 ignored 檔案、資料庫或外部資料,也要依本次需求另記需要的項目;這組查詢不會把它們列成已移交。

判讀案例:來源主機有已暫存的 note.md、未暫存的 core.mjs,以及未追蹤的 local-note.txt;目的主機的 commit 相同但狀態乾淨,而且缺少 local-note.txt。結論是版本基準相同,三份本次工作尚未獲得完整核對,不能宣稱交接完成。先停止兩端新增修改,比較原交接紀錄與需要保留的內容,再處理缺口。只有手機改用筆電控制同一主機時,也要重新讀檔確認,但不應多做一次檔案搬移。

在桌面版開啟要移交的任務,從頁尾的目前執行位置選目的主機,核對目的地與分支後選 Hand off。官方流程會在目的地建立或使用工作樹並移交任務與 Git 狀態;若任務正在回覆,移交會中斷那次回覆。為了容易比對,先讓練習停在可檢查的位置。需要從另一任務用自然語言移交時,要明確指定哪個任務與主機;執行要求的任務不能搬自己。

移交成功後,再核對這個 Git 練習庫需要的檔案、目錄、commit 與差異,以及新的工作樹路徑。前半段的 host-marker.txt 留在另一個非 Git 練習資料夾,不是這次移交的預期檔案。不要假設所有未追蹤資料、資料庫、環境變數、工具版本或網站登入都已移過去;先確認本次工作需要的檔案和工具實際可用,再恢復修改。要回來時在執行位置選 This computer 並再次核對。Handoff 不支援把任務直接搬進 Codex 雲端環境,雲端要按建立相應任務。

常見問題與完成判準

另一裝置看不到任務時,依序查主機、工作區、配對與專案,不先重建同名任務;回覆仍是舊版本時,用重新讀檔和 Revision: 2 驗證;Handoff 目的地沒有出現時,查相同 Git 儲存庫及子目錄是否已保存;新主機測試不能執行時,查工具與依賴,不能因移交成功就標示測試通過。網路中斷時先查實際任務狀態,避免在兩臺主機同時重送會寫入的要求。

完成基本練習後應保有填妥的 handoff.md、兩次不同版本的新讀取、舊紀錄與實檔不一致的判讀,以及明確的還原結果。有第二主機才額外記錄 Handoff 前後的版本與工具檢查;沒做就標未實測。本文 Remote 與 Handoff 入口依官方文件查證,沒有用一個本機模擬資料夾宣稱完成真實跨主機移交。接著可讀,將同樣紀錄方式用於較長工作。

原創流程示意圖,非產品介面截圖。
原創流程示意圖,非產品介面截圖。 · 圖片:Mokaair (© Mokaair)
閱讀完整文字說明

Three numbered stages: identify the starting point, perform the exercise, and verify the result. Original illustration, not a product screenshot.

回總目錄

  • 生活分享

    Codex 學習中心:完整教學目錄

    從安裝、第一個任務到 MD 規則與進階整合,規劃 60 篇 Codex 教學、十個單元。依程度、平台、需求或指令搜尋下一篇;尚未公開的教學會標示狀態,方便安排學習路線。

  • 生活分享

    Worktree 與多任務隔離

    Worktree 讓同一個 Git 程式庫有不同的工作目錄,各自承接不同分支。它適合讓兩項工作分開改檔,但資料庫、連接埠與外部服務仍可能共用,不能把檔案隔離當成所有資源隔離。

  • 生活分享

    實戰:製作小網站

    從 brief.md 規劃並製作 Small Steps 待辦網站,完成新增、完成、刪除、篩選與本機資料保存。將 HTML、CSS、資料函式、畫面事件與測試分開,以 Node 測試和瀏覽器操作驗收,並留下可重新啟動與還原的交接紀錄。

  • 生活分享

    用量與效率:減少重工

    記錄任務條件、模型選項、時間與成果,找出能減少無效重試和過多上下文的調整。

最新旅遊情報攻略

資料來源

生活分享