AgentSkillsCN

git-remote-push

處理將本地更改推送到遠端倉庫(如 GitHub)。自動偵測遠端預設分支,同步分支命名,並處理權限問題。

中文原作
SKILL.md
--- frontmatter
name: git-remote-push
description: 處理將本地更改推送到遠端倉庫(如 GitHub)。自動偵測遠端預設分支,同步分支命名,並處理權限問題。

Git 遠端推送工作流 (Git Remote Push Workflow)

當使用者要求將程式碼「推送」、「上傳」至 GitHub 或任何遠端倉庫時,請遵循此工作流。

1. 環境偵測 (Environment Discovery)

在執行推送前,必須先確認遠端狀態:

  • 執行指令git remote -v 獲取遠端 URL。
  • 執行指令git ls-remote --symref origin HEAD 識別遠端的預設分支名稱(通常為 mainmaster)。

2. 分支同步策略 (Branch Sync Strategy)

不要假設本機分支名稱與遠端一致。

  • 檢查目前分支git branch --show-current
  • 執行推送
    • 若本機分支為 master 且遠端預設為 main,執行 git push origin master:main
    • 若遠端已有內容,且需要覆蓋或同步,應根據情況加上 --force 並告知使用者原因。
    • 原則:直接使用遠端最新的分支資訊進行對應推送,不需詢問使用者是否重新命名本機分支。

3. 權限與安全性處理 (Permissions & Security)

  • 403 Forbidden 錯誤:若推送失敗顯示權限不足,主動建議使用者將帳號嵌入 URL:
    • git remote set-url origin https://<username>@github.com/<username>/<repo>.git
  • 憑證檢查:提醒使用者 Windows 認證管理員 (Credential Manager) 可能存有舊憑證。

4. 驗證 (Verification)

推送完成後,執行 git ls-remote origin 確認遠端 HEAD 是否已更新,或提供遠端倉庫連結供使用者確認。

5. 注意事項

  • 禁止自動 Push:始終向使用者說明即將執行的 Git 指令及其影響,取得同意後再執行。
  • Gitignore 檢查:在推送前確認 .gitignore 已包含必要排除項(如 node_modules, .env)。