同步
同步入口在頂欄,命令面板裏也能找到全部變體。所有網絡操作在後台執行,可以隨時取消。
獲取
- 獲取 — 獲取當前分支的上游;
- 獲取全部遠程 — 逐個遠程執行;
- 獲取指定遠程;
- 拉取標籤 — 只更新標籤,不合並。
獲取只更新遠程跟蹤引用,不改變工作區與分支。
拉取
拉取按「設置 → Git」中的策略整合上游:
| 策略 | 行為 |
|---|---|
| 合併 | 生成合並提交 |
| 變基 | 把本地提交重放到上游之後 |
| 僅快進 | 不能快進時拒絕,不做任何改動 |
也可以「從遠程分支拉取」:指定遠程與分支,把該分支按當前策略整合進當前分支。
推送
| 操作 | 説明 |
|---|---|
| 推送 | 推送到當前分支的上游 |
| 推送當前分支為… | 把 HEAD 發佈為遠程上的指定分支,不改動本地上游 |
| 推送到指定遠程 | 選擇遠端,按同名分支推送 |
| 設置 / 取消上游 | 為當前分支綁定或解綁上游 |
| 推送標籤 / 推送全部標籤 | 分別推送 |
| 帶租約強推 | 用 --force-with-lease,並且先寫快照 |
分支沒有上游時,推送會提示先設置上游或選擇目標分支,而不是直接失敗。
帶租約強推
強推之前:
- 記錄遠端當前尖端,寫成恢復快照,並用備份引用固定它;
- 快照寫不成功就不推送;
- 推送時用租約校驗:只有遠端仍停在你上次獲取到的位置,替換才會發生。
之後要找回,從恢復中心恢復;恢復同樣會先檢查遠端,被他人推送過就停止。
推送預檢
每一條外發路徑都會先跑本地預檢:普通推送、強推、設置上游、推送為指定分支、推送到指定遠程、推送單個標籤與全部標籤。
預檢只讀本地對象,在你按下推送之前不會向網絡發送任何內容。它掃描即將外發的提交區間,報告三類問題:
- 新增大文件 — 超過閾值(默認 10 MiB),LFS 跟蹤的路徑會跳過;
- 衝突標記 — 新增行裏殘留的
<<<<<<<等標記; - 疑似密鑰 — 私鑰塊、雲服務與平台令牌、高熵賦值。
處理方式:
- 私鑰內容不可覆蓋,必須移除並改寫提交,同時輪換該密鑰;
- 可覆蓋的阻斷項需要輸入
push確認; - 警告需要明確選擇「仍然推送」;
- 部分克隆無法掃描時直接拒絕,淺克隆會把報告標為不完整,而不是假裝完整。
閾值在「設置 → Git → 推送預檢大文件閾值」裏調整。
自動獲取
「設置 → Git → 自動獲取間隔」可以按分鐘間隔在後台獲取全部遠程,0 表示關閉。獲取不會合並,也不會改變工作區。
批量同步
在多倉庫工作區裏可以選中多個倉庫一起獲取或拉取,並得到每個倉庫的結果。見多倉庫工作區。
認證失敗
認證問題會被區分出來,並給出下一步:
- 打開 Git 設置檢查遠端與憑據;
- 複製
ssh-add -l到終端,確認 SSH key 已加載; - 應用不保存你的密碼,憑據由
git的 credential helper 管理;helper 沒配置時,先按 Git 的方式配置好再重試。
完整處理見故障排查。
最後更新於