SeaMeet Desktop 來了 — 錄製一切,不錯過任何內容。免費下載 →

GitHub Sync 設定

第 38 章:GitHub Sync 設定

GitHub Sync 將您的 SeaMeet 工作區轉換為一個私人、有版本控制的 Markdown 樹狀結構,存放於您自己的 GitHub 儲存庫中。每次您編輯筆記、重新命名錄音或調整 wiki 頁面時,SeaMeet 都會在背景悄悄地提交變更並推送到 GitHub。在另一台筆電上開啟 SeaMeet,您的筆記會在首次啟動時拉取下來 — 中間沒有 Dropbox,迴路中也沒有 Seasalt 伺服器。儲存庫是您的,資料是您的,如果您想要的話,可以隨時直接在 github.com 上瀏覽。

模型很簡單:您的 GitHub 儲存庫就是儲存空間。SeaMeet 不執行同步服務。它在您的帳號上安裝一個小型的 GitHub App,取得每位使用者的 OAuth 權杖,並使用該權杖直接推送和拉取 Git 提交。由於儲存空間使用 GitHub 的免費方案 — 提供無限數量的私人儲存庫 — 同步實際上是免費的。並且因為每個 SeaMeet 工作區都是它自己的儲存庫,您可以讓工作和個人工作區完全分開。


章節目標

閱讀本章後,您將能夠:

  • 在您的帳號或組織上安裝 SeaMeet GitHub App
  • 透過 OAuth 授權 SeaMeet 並讓它為您建立一個私人同步儲存庫
  • 讀取同步狀態列並了解同步狀態機中的每個狀態
  • 識別 OAuth 何時在背景自動重新整理,何時需要手動重新授權
  • 當同一筆記在兩台裝置上編輯過時解決同步衝突
  • 調整同步設定面板(自動同步、同步間隔、啟動時同步)
  • 排除最常見的失敗模式

先決條件

開始之前,請確認您具備:

  • GitHub 帳號 — 免費方案就夠了;不需要 GitHub Pro
  • 有效的同步權益 — 包含在 BYOK Pro 和 Sync Pro 等級中。如果您的計費等級不包含同步,「同步設定」畫面會顯示「訂閱以啟用同步」橫幅。詳情請參閱第 35 章:訂閱與計費
  • 在 SeaMeet 中開啟的工作區 — 同步附加於活動工作區,而非整個應用程式。如果您有多個工作區,每一個都是它自己的 GitHub 儲存庫。
  • 正常運作的網際網路連線 — 設定流程會在您的預設瀏覽器中開啟 GitHub

每個工作區一個儲存庫。 SeaMeet 會為您連接的每個工作區建立獨立的私人儲存庫。這樣可以將工作筆記和個人筆記乾淨地隔離開來,並且您可以在不影響另一個的情況下中斷其中一個的連線。


逐步設定

首次設定大約需要 90 秒:在 GitHub 上授權 SeaMeet,讓它建立您的儲存庫,等待初始上傳,然後就完成了。

步驟 1:開啟同步設定

  1. 點擊設定齒輪圖示
  2. 在左側欄中開啟 Sync 標籤
  3. 您會看到 "Sync with GitHub" 標題卡片

如果您看不到 Sync 標籤,您的訂閱等級不包含同步 — 請參閱第 35 章來升級。

如果您看到一個橫幅顯示*"Back up your notes to a private GitHub repo with BYOK Pro"*,表示您是免費帳號。點擊橫幅以開啟付費牆,或在訂閱前跳過本章其餘部分。

步驟 2:點擊 "Set Up GitHub Sync"

「同步設定」空狀態會顯示三個益處區塊("Free & private"、"Effectively unlimited"、"One repo per workspace"),以及底部的主要 Set Up GitHub Sync 按鈕。

點擊它。您的預設瀏覽器會開啟到 GitHub 授權頁面。

步驟 3:安裝 SeaMeet GitHub App(一次性)

您第一次授權 SeaMeet 時,GitHub 會要求您在您的帳號上安裝 SeaMeet GitHub App。這在每個 GitHub 帳號(或每個組織,如果您要同步到組織擁有的儲存庫)上是一次性的步驟。

在 GitHub 安裝頁面上:

  1. 選擇您要 SeaMeet 寫入的帳號或組織
  2. 選擇 "All repositories""Only select repositories" — SeaMeet App 需要 contents: writeadministration: write 權限,以便代表您建立同步儲存庫
  3. 點擊 Install & Authorize

GitHub 會將您帶回 SeaMeet。「同步設定」面板現在顯示:

┌──────────────────────────────────────────────────────┐
│   ✓ 已授權                                            │
│   ⟳ 建立儲存庫並上傳中...                              │
└──────────────────────────────────────────────────────┘

為什麼使用 GitHub App 而不是純 OAuth 權杖? GitHub Apps 具有細粒度的每個儲存庫權限和輪替的重新整理權杖。SeaMeet 只擁有您明確選擇的儲存庫的寫入權限,且 OAuth 存取權杖每 8 小時就會過期 — 即使洩漏,視窗也很小。(請參閱下方的 OAuth 自動重新整理 章節,了解 SeaMeet 如何讓這個過程對您而言不可見。)

步驟 4:建立儲存庫(自動)

SeaMeet 現在會代表您呼叫 GitHub API 並:

  1. 建立一個以您工作區命名的私人儲存庫(例如 seameet-work-notes
  2. 如果您的工作區資料夾中還沒有本機 Git 儲存庫,就初始化一個
  3. 執行 git init,寫入排除音訊/視訊/截圖檔案的 .gitignore,並建立初始提交
  4. 將新的 GitHub 儲存庫新增為 origin
  5. 推送初始提交

您會看到側邊欄底部的狀態列依序轉換為:

建立儲存庫中...  →  同步中...  →  已同步 · 剛剛

就是這樣。您的工作區現在由 GitHub 支援。

步驟 5:首次同步自動執行

從現在開始,每當您有未儲存的變更時,SeaMeet 預設每 5 分鐘自動提交一次,並在每次提交後立即推送到 GitHub。下次啟動 SeaMeet 時,應用程式會在您開始編輯之前從 GitHub 拉取 — 所以在另一台裝置上所做的變更會在應用程式開啟的那一刻就出現。


同步狀態機

SeaMeet 的 SyncManager 執行一個小型狀態機,並將其當前狀態廣播到渲染程序。側邊欄 SyncStatusBar 和「同步設定」面板都從這個狀態讀取。了解這些狀態有助於您準確地讀取 UI。

                      ┌─────────────┐
                      │    idle     │ ◄──────┐
                      └──────┬──────┘        │
                             │ 檔案變更       │
                             ▼               │
                      ┌─────────────┐        │
                ┌────►│   pending   │        │
                │     └──────┬──────┘        │
       檔案     │            │ 提交計時器     │
       變更     │            ▼               │
                │     ┌─────────────┐        │
                │     │ committing  │        │
                │     └──────┬──────┘        │
                │            ▼               │
                │     ┌─────────────┐        │
                │     │   pushing   │        │
                │     └──────┬──────┘        │
                │            ▼               │
                │     ┌─────────────┐        │
                │     │   synced    │── 5s ──┘
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   pulling   │  (啟動時或推送被拒絕)
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤  conflict   │  → 使用者解決 → syncing → synced
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   offline   │  → 網路恢復 → 重試
                │     └─────────────┘
                │
                │     ┌─────────────┐
                ├─────┤   timeout   │  → 使用者點擊「重試」
                │     └─────────────┘
                │
                │     ┌────────────────┐
                └─────┤ token-expired  │ → 重新授權卡片
                      └────────────────┘

以下是每個狀態在 UI 中的意義:

狀態狀態列標籤意義
idle"Synced · 2 min ago"沒有待處理項目,上次提交是乾淨的
pending"Pending..."您有未儲存的變更;提交計時器將在下一個間隔觸發
committing"Syncing..."本機 Git 提交正在進行中
pushing"Pushing..."本機提交完成;正在推送到 GitHub
pulling"Pulling..."啟動同步,或推送被拒絕,我們會先拉取
syncing"Syncing..."在衝突解決後完成 rebase
synced"Synced · just now"剛完成的成功;顯示 5 秒,然後返回 idle
conflict"Sync conflict"本機和遠端都編輯了同一個檔案。UI 會顯示衝突解決流程。
error"Sync error"非網路、非衝突的失敗(例如 git 失敗)。以指數退避自動重試,最多 5 次。
offline"Offline"無法連線網路。將在下一次檔案變更或 60 秒後重試。
timeout"Sync timed out"git 指令花費超過 60 秒(請參閱下方的「同步逾時保護」)
token-expired"Re-authorize"OAuth 重新整理失敗,使用者必須手動重新授權
installing-app"Installing GitHub App..."等待使用者在其瀏覽器中完成 GitHub App 安裝步驟
creating-repo"Creating repository..."設定流程正在建立 GitHub 儲存庫並推送初始提交

如果狀態列顯示一個旋轉圖示,這是正常的背景活動。如果是琥珀色或紅色,請參閱下方的疑難排解章節。


OAuth 自動重新整理

GitHub Apps 發行的使用者存取權杖每 8 小時過期,加上一個有效期為 6 個月的重新整理權杖。SeaMeet 為您管理這些,您幾乎不需要考慮。

運作方式:

  1. 當 SeaMeet 即將推送或拉取時,SyncManager._refreshTokenIfNeeded() 會檢查目前的權杖是否在接下來的 5 分鐘內過期。
  2. 如果是,SeaMeet 會使用儲存的重新整理權杖呼叫 GitHub 的 /login/oauth/access_token 端點。GitHub 會回傳一個新的存取權杖並輪替重新整理權杖。SeaMeet 會將兩者寫回磁碟上的加密權杖檔案。
  3. 接著 Git 指令會使用剛剛重新整理的權杖執行。您在螢幕上看不到任何東西 — 整個重新整理過程不到一秒。

暫時性失敗處理: 如果重新整理呼叫因為網路不穩定或 GitHub 回傳 5xx(REFRESH_NETWORK_ERROR)而失敗,SeaMeet 不會丟棄現有的權杖。相反地,同步會進入 offline 狀態並稍後再試。這很重要,因為現有的權杖可能在接下來的幾分鐘內仍然有效 — 在暫時性網路中斷時將其丟棄會讓您不必要地登出同步。

並行重新整理合併: GitHub 每次使用時都會輪替重新整理權杖,所以兩個並行重新整理會競爭,其中一個會使另一個失效。SeaMeet 會將並行重新整理呼叫合併為單一進行中的 Promise(_refreshPromise),這樣啟動同步和帶重試的推送就永遠不會搶奪輪替的權杖。

當重新整理真的失敗時: 如果 GitHub 回傳 REFRESH_TOKEN_EXPIRED — 表示 6 個月的重新整理權杖已過期或已被撤銷 — SeaMeet 會:

  1. 從磁碟刪除加密的權杖檔案
  2. 進入 token-expired 終端狀態
  3. 在「同步設定」中顯示琥珀色卡片:
┌──────────────────────────────────────────────────────┐
│ ⚠  GitHub 授權已過期。請重新授權                       │
│    以繼續同步。                                        │
│                                                       │
│  [ ↻ 重新授權 GitHub ]                                 │
└──────────────────────────────────────────────────────┘

點擊重新授權 GitHub。您會被重新送回 OAuth 流程 — 但因為 GitHub App 已經安裝了,這只需要點擊一下確認,約 10 秒內就能完成。SeaMeet 接著會在下次推送之前從您的本機 git config 中移除任何過期的權杖(舊權杖可能嵌入在 origin 的 URL 中),這樣您就不會在死掉的憑證上循環。


同步逾時保護

如果網路在傳輸中途靜默 — TCP 通訊端可能會處於半開狀態而從不引發錯誤 — Git 指令可能會永遠掛起。SeaMeet 會將每個 Git 推送和拉取包裝在 60 秒的 AbortController 逾時中。

如果推送或拉取在 60 秒內未完成,SeaMeet 會:

  1. 中止 git 子程序
  2. 進入 timeout 狀態
  3. 在「同步設定」中顯示琥珀色卡片:
┌──────────────────────────────────────────────────────┐
│ ⚠  同步逾時。這可能是由網路問題                        │
│    或 GitHub 授權過期所造成。                           │
│                                                       │
│  [ ↻ 重試同步 ]   [ 重新授權 GitHub ]                   │
└──────────────────────────────────────────────────────┘

重試同步會再次執行 commitNow。如果您認為您的網路只是短暫中斷,這是正確的按鈕。重新授權 GitHub 會再次執行 OAuth 流程;如果逾時持續發生,點擊這個按鈕,這通常意味著問題在於您的權杖而不是網路。

即使您不點擊任何按鈕,狀態大約 30 秒後也會自動返回 idle — 同步會在下次檔案變更時重試。


衝突解決

同一個檔案自上次同步以來已在兩台裝置上編輯時,就會發生衝突。範例:您在筆電的 meetings/2026-06-03-standup.md 中寫了一段話,後來又在朋友的機器上編輯了同一段。當第二台裝置推送時,GitHub 會拒絕推送,因為歷史記錄已分歧。

SeaMeet 透過以下方式處理:

  1. 以 rebase 拉取遠端變更
  2. 偵測合併衝突標記
  3. 進入 conflict 狀態
  4. 在側邊欄狀態列(會變成可點擊)以及「同步設定」衝突面板中呈現衝突

衝突解決對話框

當同步處於 conflict 時點擊狀態列會開啟衝突解決對話框

┌──────────────────────────────────────────────────────────┐
│  ⚠  同步衝突                          1 / 2          [×]  │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  "2026-06-03-standup.md" 在另一台裝置上被修改。           │
│                                                          │
│  ┌────────────────────────┐  ┌────────────────────────┐  │
│  │ ✎  手動編輯             │  │ ✦  Agent 合併           │  │
│  └────────────────────────┘  └────────────────────────┘  │
│                                                          │
└──────────────────────────────────────────────────────────┘

您有兩個選項:

手動編輯 — 在您系統的預設編輯器中開啟衝突檔案,內含 Git 標準的 <<<<<<< / ======= / >>>>>>> 標記。編輯檔案以解決它們,儲存後返回 SeaMeet 並點擊完成。SeaMeet 會暫存已解決的檔案並繼續 rebase。

Agent 合併(僅限 BYOK Pro,需要設定 AI 助手)— 將兩個版本傳送到您設定的 AI 助手(GitHub Copilot 或 Claude Code,請參閱第 36 章:BYOK 設定指南),並要求它產生保留雙方意圖的合併版本。Agent 的輸出會自動暫存;在 rebase 完成時,您會看到「完成同步...」旋轉圖示。

如果一次有多個衝突,對話框會顯示計數器(1 / 22 / 2),以及「同步設定」衝突面板中的方向鍵箭頭,讓您可以一個接一個逐步處理它們。

"Keep mine" / "Keep theirs" / "Keep both" 選項會在您進入手動編輯器時作為自然的選擇出現:在標記之間只保留您版本的文字、只保留遠端版本的文字,或交錯保留兩者。Agent 合併按鈕實際上是「智能地保留兩者」。

如果您犯了錯誤怎麼辦? 同步衝突是非破壞性的。Git 在索引中保留原始的「我們的」和「他們的」內容,且 getConflictVersions(filePath) 可以在解決過程中的任何時點擷取任何一個。您不會意外地遺失工作。


同步設定面板

連線後,「同步設定」(設定 → Sync)為您提供一個將所有內容放在一個地方的單一畫面:

┌─────────────────────────────────────────────────────────────┐
│  ✓ 同步與備份                                                │
│  您的筆記和 wiki 會自動同步到 GitHub。                       │
│  音訊錄音、視訊錄音以及截圖不會                              │
│  被同步。                                                    │
├─────────────────────────────────────────────────────────────┤
│  ⓘ  https://github.com/you/seameet-work-notes                │
│  🕒 上次同步:4 分鐘前                                        │
├─────────────────────────────────────────────────────────────┤
│  自動同步                                          [ 開  ◉ ]  │
│  同步間隔                                       [ 5 分鐘 ▾ ]  │
│  分支                                                main    │
│  上次同步                                         4 分鐘前    │
├─────────────────────────────────────────────────────────────┤
│  變更時自動同步                                     [ 開  ◉ ]  │
│  啟動時同步                                         [ 開  ◉ ]  │
├─────────────────────────────────────────────────────────────┤
│  [ ⤓ 立即同步 ]                                              │
├─────────────────────────────────────────────────────────────┤
│  [ ↗ 在 GitHub 上檢視 ]    [ 中斷連線 ]                       │
└─────────────────────────────────────────────────────────────┘

控制項由上而下:

  • 自動同步 — 背景提交計時器的主要切換。關閉表示 SeaMeet 只在您點擊立即同步時才提交。
  • 同步間隔 — 提交計時器觸發的頻率。選項為 1 / 5 / 10 / 30 分鐘。預設為 5 分鐘。1 分鐘間隔適合積極做筆記時;30 分鐘適合低編輯量的工作區,您寧願批次處理提交。
  • 分支 — SeaMeet 同步到的 Git 分支。幾乎總是 main。在 UI 中是唯讀的。
  • 上次同步 — 上次成功推送的相對時間戳。
  • 變更時自動同步 — 開啟時,推送在每次本機提交後立即發生(典型情況)。關閉時,SeaMeet 會在本機提交,但只有在您點擊立即同步時才推送。如果您想要批次處理推送(例如在計量付費連線上),這很有用。
  • 啟動時同步 — 開啟時,SeaMeet 會在應用程式啟動時立即從 GitHub 拉取。除非您的連線非常慢,否則建議開啟。
  • 立即同步 — 強制立即進行提交與推送週期。不等待計時器。在關閉筆電前很有用。
  • 在 GitHub 上檢視 — 在您的瀏覽器中開啟儲存庫。
  • 中斷連線 — 清除儲存的 OAuth 權杖、刪除加密的權杖檔案,並從您的本機 Git 儲存庫中移除 origin。您的本機 Markdown 檔案和 Git 歷史記錄不會被觸碰 — 只是切斷與 GitHub 的連結。

同步什麼(以及不同步什麼)

這在章節索引中有記錄,但這裡值得重複:

同步不同步
筆記(.md 檔案)音訊錄音(.webm.mp3
Wiki 頁面(.md 檔案)視訊錄音(.webm.mp4
錄音資訊清單(中繼資料 JSON)截圖(.png.jpg
AI 摘要與謄寫稿快取的 AI 產生內容
Wikilink 圖譜應用程式設定
.gitignore編輯器暫存狀態

SeaMeet 寫入的 .gitignore 會排除所有大型二進位類別。這是刻意的:GitHub 的免費私人儲存庫上限為 1 GB,而一個 30 分鐘的視訊本身就能用完。SeaMeet 將媒體保留在您的本機磁碟上,且只同步輕量級的 Markdown。

如果您想要完整的媒體同步,那就是 Sync Pro 等級 — 請參閱第 35 章。


疑難排解

點擊 "Set Up GitHub Sync" 後立即出現「授權失敗」

原因和修正:

  • 彈出視窗封鎖程式 — 如果沒有開啟瀏覽器視窗,您的作業系統或瀏覽器可能封鎖了啟動。再次點擊 Set Up GitHub Sync 並確認任何彈出視窗提示。
  • 您拒絕了 GitHub App 權限 — 重新進行流程並接受 contents: write + administration: write 範圍。沒有 administration: write,SeaMeet 無法為您建立儲存庫。
  • 狀態不符錯誤 — 關閉任何其他可能在同一 OAuth 流程上競爭的 SeaMeet 視窗,然後重試。

設定期間出現「Repo permissions」錯誤

錯誤訊息類似 "GitHub App has 'contents: read' permission, but needs 'contents: write'." 這表示您安裝了較舊版本的 App。

修正:

  1. 開啟 github.com/settings/installations
  2. 在清單中找到 SeaMeet 並點擊 Configure
  3. Repository permissions 下,將 ContentsAdministration 變更為 Read and write
  4. 儲存,然後解除安裝並重新安裝應用程式 — GitHub 只在重新安裝時套用新權限
  5. 在 SeaMeet 中重新執行 Set Up GitHub Sync

「無法連線到 GitHub」/ 同步卡在「Offline」

網路失敗。SeaMeet 會在以下情況自動重試:

  • 您進行任何檔案變更(觸發立即重試嘗試)
  • 上次重試後經過 60 秒

如果您的網路已恢復,但同步在幾分鐘後仍顯示 Offline:

  1. 點擊立即同步強制重試
  2. 如果該操作逾時:檢查您的防火牆是否封鎖了 github.com
  3. 作為最後手段,重新啟動 SeaMeet — 啟動同步會在啟動時觸發

同步卡在「Pending」

這通常表示自動提交計時器尚未觸發。預設每 5 分鐘觸發一次。不想等待嗎?點擊立即同步

如果立即同步沒有讓同步超過 Pending,請檢查:

  • 您是否在包含同步的計費等級上?開啟「同步設定」 — 如果您看到訂閱橫幅,同步在權益層被停用。
  • Markdown 樹之外是否有未提交的變更?自動提交計時器只在 _pendingChanges 非空時才觸發。

「我看到 token-expired 卡片」

這是 OAuth 重新整理生命週期的預期結束 — 您的 6 個月重新整理權杖已過期,或者您撤銷了 GitHub App,或者您變更了 GitHub 密碼(這會使所有 OAuth 權杖失效)。

修正:點擊卡片中的重新授權 GitHub。流程與初始設定相同,但跳過 GitHub App 安裝步驟(您已經安裝了)。大約需要 10 秒。

衝突解決面板無法關閉

只有當清單中的所有衝突都已解決時,面板才會關閉。如果您看到計數器(1 / 3),請使用「同步設定」衝突面板中的方向鍵箭頭逐步處理剩餘的檔案。每個檔案都需要明確的解決方案(手動編輯 + 完成,或 Agent 合併)。

如果面板堅持有衝突,但您在檔案中看不到任何標記,請點擊立即同步 — 過期的 conflict 狀態會在下次成功同步嘗試時被清除。

「推送被拒絕」循環

如果同步在 pushingpulling 之間反覆交替,表示 GitHub 一直在拒絕您的推送,因為遠端不斷向前。這可能發生在:

  • 另一個 SeaMeet 實例正在針對同一個儲存庫執行,且推送速度比這個更快 — 關閉另一個實例。
  • 有人(或某個工具)正在從 SeaMeet 外部提交到 GitHub 儲存庫 — 暫停外部工具,直到您的本機複本趕上。

安全注意事項

OAuth 權杖儲存於何處: 透過 Electron 的 safeStorage API 儲存在您的作業系統金鑰圈中。在 Windows 上是 DPAPI,在 macOS 上是 Keychain Services,在 Linux 上是 libsecret。加密的二進位資料以檔案模式 0o600 寫入 <userData>/github-token.enc。該檔案保留存取權杖、重新整理權杖、過期時間戳,以及 GitHub App 的用戶端 ID、用戶端密鑰和 slug。

什麼不會儲存在 argv 中: OAuth 權杖從不作為 -c http.extraHeader=... 引數傳遞給 git,因為 argv 透過 ps aux 對其他使用者是可見的。相反地,授權標頭是透過 GIT_CONFIG_PARAMETERS 環境變數注入的,該變數對程序而言是私有的。同一台機器上的其他使用者無法看到您的權杖。

儲存庫中磁碟上最終會有什麼: 純 Markdown 檔案。沒有權杖、沒有密鑰、沒有憑證。.gitignore 排除媒體檔案,但您仍應避免將密鑰貼到筆記本文中 — 那些會被同步。

撤銷存取: 若要立即切斷 SeaMeet 對儲存庫的存取,請在 github.com/settings/installations 解除安裝 SeaMeet GitHub App。下次同步嘗試會以 token-expired 失敗,且 SeaMeet 會清除其本機權杖。您的本機筆記不會被觸碰。


快速參考

┌─────────────────────────────────────────────────────────────┐
│                   GITHUB SYNC                               │
│                   快速參考                                   │
├─────────────────────────────────────────────────────────────┤
│  開啟同步設定          │ 設定 → Sync                          │
│  首次設定              │ 點擊 "Set Up GitHub Sync"            │
│  必需範圍              │ contents: write, admin: write        │
│  儲存庫命名            │ 每個工作區一個私人儲存庫              │
├─────────────────────────────────────────────────────────────┤
│  預設同步間隔          │ 5 分鐘 (1 / 5 / 10 / 30)             │
│  強制同步              │ "Sync Now" 按鈕                      │
│  推送時自動同步        │ 開(「同步設定」中的切換)            │
│  啟動時同步            │ 開(「同步設定」中的切換)            │
├─────────────────────────────────────────────────────────────┤
│  OAuth 重新整理邊際    │ 過期前 5 分鐘                         │
│  Git 指令逾時          │ 60 秒 (AbortController)              │
│  自動重試上限          │ 5 次嘗試,指數退避                    │
│  權杖儲存              │ 作業系統金鑰圈 (safeStorage)          │
├─────────────────────────────────────────────────────────────┤
│  衝突 UI               │ 衝突時點擊狀態列                      │
│  手動解決              │ 編輯標記 → 完成                       │
│  Agent 合併            │ BYOK Pro + 已設定 AI 助手             │
├─────────────────────────────────────────────────────────────┤
│  中斷連線              │ 同步設定 → 中斷連線                   │
│  從 GitHub 撤銷        │ github.com/settings/installations    │
│  檢視儲存庫            │ "View on GitHub" 連結                 │
└─────────────────────────────────────────────────────────────┘

Last updated: 2026-06-04

第 37 章:GitHub Copilot 供應商 | (手冊結束 — 回到索引

Published: