创新方案
同步本地主分支到上游或 origin 最新代码时:区分…
当用户要求同步上游代码、更新主分支或拉取最新主分支代码时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
同步本地主分支到上游或 origin 最通用
解决思路
- 执行 `git remote -v`,确认是否存在 `official` remote。
- 根据是否存在 `official` remote,选择两种情况之一执行。
- 存在 `official` remote(fork 的项目):通过 `git remote show official` 或查看本地分支,确定主分支名称(`main` 或 `master`)。
- 存在 `official` remote(fork 的项目):执行 `git fetch official` 拉取 official 最新代码。
- 存在 `official` remote(fork 的项目):执行 `git checkout <main-branch>` 切换到本地主分支。
- 存在 `official` remote(fork 的项目):执行 `git reset --hard official/<main-branch>`,将本地主分支重置到 official 最新状态。
- 存在 `official` remote(fork 的项目):执行 `git push origin <main-branch> --force-with-lease`,同步自己 fork 的远端主分支。
- 不存在 `official` remote(自己的项目):通过查看本地分支,确定主分支名称(`main` 或 `master`)。
- 不存在 `official` remote(自己的项目):执行 `git fetch origin` 拉取 origin 最新代码。
- 不存在 `official` remote(自己的项目):执行 `git checkout <main-branch>` 切换到本地主分支。
- 不存在 `official` remote(自己的项目):执行 `git pull origin <main-branch>`,将本地主分支同步到 origin 最新状态。
- 两种情况共同:执行 `git log --oneline -5`,展示最新的几条 commit 确认同步成功。
- 始终使用 `official` 作为上游 remote 名称(而非 `upstream`),以保持一致性。
- 对于 fork 项目,推送到 origin 时使用 `--force-with-lease` 而非 `--force`,更安全地强制推送。
- 如果当前有未提交的改动,先提示用户处理(stash 或 commit),避免丢失工作。
适用边界 · 注意事项
- 当前有未提交改动且未先 stash 或 commit 时不要直接同步,避免丢失工作。
- 不是 Git 仓库、未配置对应 remote 或无法确定主分支名称时不适用。
- 需要保留本地主分支独有提交、或不允许重写/强制推送 fork 远端历史时,不要使用情况一的 `git reset --hard` 加 `--force-with-lease`。