Skip to Content
文件同步

同步

同步入口在頂欄,命令面板裏也能找到全部變體。所有網絡操作在後台執行,可以隨時取消。

獲取

  • 獲取 — 獲取當前分支的上游;
  • 獲取全部遠程 — 逐個遠程執行;
  • 獲取指定遠程;
  • 拉取標籤 — 只更新標籤,不合並。

獲取只更新遠程跟蹤引用,不改變工作區與分支。

拉取

拉取按「設置 → Git」中的策略整合上游:

策略行為
合併生成合並提交
變基把本地提交重放到上游之後
僅快進不能快進時拒絕,不做任何改動

也可以「從遠程分支拉取」:指定遠程與分支,把該分支按當前策略整合進當前分支。

推送

操作説明
推送推送到當前分支的上游
推送當前分支為…把 HEAD 發佈為遠程上的指定分支,不改動本地上游
推送到指定遠程選擇遠端,按同名分支推送
設置 / 取消上游為當前分支綁定或解綁上游
推送標籤 / 推送全部標籤分別推送
帶租約強推用 --force-with-lease,並且先寫快照

分支沒有上游時,推送會提示先設置上游或選擇目標分支,而不是直接失敗。

帶租約強推

強推之前:

  1. 記錄遠端當前尖端,寫成恢復快照,並用備份引用固定它;
  2. 快照寫不成功就不推送;
  3. 推送時用租約校驗:只有遠端仍停在你上次獲取到的位置,替換才會發生。

之後要找回,從恢復中心恢復;恢復同樣會先檢查遠端,被他人推送過就停止。

推送預檢

每一條外發路徑都會先跑本地預檢:普通推送、強推、設置上游、推送為指定分支、推送到指定遠程、推送單個標籤與全部標籤。

預檢只讀本地對象,在你按下推送之前不會向網絡發送任何內容。它掃描即將外發的提交區間,報告三類問題:

  • 新增大文件 — 超過閾值(默認 10 MiB),LFS 跟蹤的路徑會跳過;
  • 衝突標記 — 新增行裏殘留的 <<<<<<< 等標記;
  • 疑似密鑰 — 私鑰塊、雲服務與平台令牌、高熵賦值。

處理方式:

  • 私鑰內容不可覆蓋,必須移除並改寫提交,同時輪換該密鑰;
  • 可覆蓋的阻斷項需要輸入 push 確認;
  • 警告需要明確選擇「仍然推送」;
  • 部分克隆無法掃描時直接拒絕,淺克隆會把報告標為不完整,而不是假裝完整。

閾值在「設置 → Git → 推送預檢大文件閾值」裏調整。

自動獲取

「設置 → Git → 自動獲取間隔」可以按分鐘間隔在後台獲取全部遠程,0 表示關閉。獲取不會合並,也不會改變工作區。

批量同步

在多倉庫工作區裏可以選中多個倉庫一起獲取或拉取,並得到每個倉庫的結果。見多倉庫工作區。

認證失敗

認證問題會被區分出來,並給出下一步:

  • 打開 Git 設置檢查遠端與憑據;
  • 複製 ssh-add -l 到終端,確認 SSH key 已加載;
  • 應用不保存你的密碼,憑據由 git 的 credential helper 管理;helper 沒配置時,先按 Git 的方式配置好再重試。

完整處理見故障排查。

最後更新於