ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VSCode 推送 GitHub/Gitee + 分支 + 回退:避坑速查版

VSCode 推送 GitHub/Gitee + 分支 + 回退:避坑速查版

文章目录

    • 1. 先确认远端配置
    • 2. 日常最常用:提交并推送到两个仓库
    • 3. 支线(分支)怎么用?
      • 查看分支
      • 创建并切换到支线
      • 切换到别的支线
      • 切换回主线
      • 在支线上提交并推送
      • 把支线合并回主线
      • 删除支线
    • 4. 怎么恢复到上一次提交代码?
      • 情况 A:只是改了代码,还没提交,想放弃修改
      • 情况 B:已经提交了,想撤销最近一次提交,但保留历史记录【推荐】
      • 情况 C:已经提交了,想彻底回到上一次提交,删掉最近一次提交
      • 情况 D:只是想看看旧版本代码
    • 5. 原手册里容易踩坑的地方,已修复
    • 6. 推荐工作流
    • 7. 最常用命令速查表

适用前提:你的远端是origin=GitHub,gitee=Gitee,主分支叫main。
如果你的主分支是master,把下面所有main换成master。
VSCode 只是编辑器,推送本质还是 Git 命令。图形界面能点,但多远端推荐用命令行。


1. 先确认远端配置

在 VSCode 里按Ctrl + ~打开终端,输入:

git remote-v

正常应该看到:

origin https://github.com/你的用户名/仓库.git gitee https://gitee.com/你的用户名/仓库.git

如果没有gitee,添加:

git remote add gitee https://gitee.com/你的用户名/仓库.git

地址错了就改:

git remoteset-urlgitee 新的Gitee地址

2. 日常最常用:提交并推送到两个仓库

VSCode 图形界面也能做:左侧源代码管理 → 输入提交说明 → 提交 → 推送。
但图形界面默认只推“当前配置的那个远端”,容易漏推。推荐命令行:

git status git add.git commit-m"你的修改说明"git push origin main# 推 GitHubgit push gitee main# 推 Gitee

拉取别人代码:

gitswitchmain git pull gitee main git pull origin main

注意:旧版 PowerShell 不支持&&,所以不要写git add . && git commit -m "xx",分成两行最稳。


3. 支线(分支)怎么用?

正式叫法是“分支”,你可以理解成“支线”。主线是main,支线用来开发新功能,不直接影响主线。

查看分支

git branch# 本地分支,* 表示当前所在git branch-a# 包含远端分支

创建并切换到支线

gitswitch-c feature/login

老命令也可以:

git checkout-b feature/login

切换到别的支线

gitswitchfeature/login

切换回主线

gitswitchmain

在支线上提交并推送

git add.git commit-m"feat: 完成登录功能"git push-u origin feature/login git push gitee feature/login

把支线合并回主线

gitswitchmain git pull gitee main git merge feature/login git push origin main git push gitee main

如果合并时有冲突,VSCode 会标红,解决后执行:

git add.git commit

删除支线

git branch-d feature/login# 删除本地已合并分支git branch-D feature/login# 强制删除本地分支git push origin--delete feature/login git push gitee--delete feature/login

4. 怎么恢复到上一次提交代码?

先分清你的情况,不然容易把代码删没。

情况 A:只是改了代码,还没提交,想放弃修改

git restore.

会丢弃未提交的修改,慎用。

情况 B:已经提交了,想撤销最近一次提交,但保留历史记录【推荐】

git revert HEAD git push origin main git push gitee main

revert不会删除历史,而是新建一个“反向提交”,多人协作更安全。

情况 C:已经提交了,想彻底回到上一次提交,删掉最近一次提交

git reset--hard HEAD~1 git push origin main-f git push gitee main-f

HEAD~1是上一个提交,HEAD~2是上上个。
--hard会永久丢弃被回退的代码。
-f是强制推送,会覆盖远端。如果队友也在用这个分支,千万别随便强推,优先用git revert。

情况 D:只是想看看旧版本代码

git checkout f84a074

看完切回主线:

gitswitchmain

这会进入 detached HEAD 状态,别在这里乱提交。只是看代码没问题。


5. 原手册里容易踩坑的地方,已修复

  1. 不要用&&:旧 PowerShell 会报错,git add .和git commit分开写。
  2. pull 前先切回 main:否则可能把远端 main 合到你当前支线里。
  3. git reset --hard+git push -f风险很大:多人协作优先git revert。
  4. VSCode 同步按钮可能只推一个远端:想双推就命令行git push origin main和git push gitee main。
  5. 删除远端分支要两个远端都删:origin和gitee都执行--delete。
  6. GitHub 认证不是登录密码:GitHub 用个人访问令牌 PAT,Gitee 用密码或私人令牌。

6. 推荐工作流

# 开工前gitswitchmain git pull gitee main# 新建支线gitswitch-c feature/xxx# 写代码git status git add.git commit-m"feat: xxx"# 推送支线git push-u origin feature/xxx git push gitee feature/xxx# 合并回主线gitswitchmain git pull gitee main git merge feature/xxx git push origin main git push gitee main# 删除支线git branch-d feature/xxx git push origin--delete feature/xxx git push gitee--delete feature/xxx

7. 最常用命令速查表

命令作用
git status看当前改动状态
git add .所有改动加入暂存区
git commit -m "说明"提交
git push origin main推 GitHub
git push gitee main推 Gitee
git pull gitee main拉 Gitee 更新
git switch main切回主线
git switch -c feature/xxx创建并切换支线
git switch feature/xxx切到支线
git merge feature/xxx把支线合并到当前分支
git revert HEAD撤销最近一次提交,保留历史
git reset --hard HEAD~1彻底回到上一次提交
git restore .放弃未提交修改
git remote -v查看远端地址
git log --oneline一行看提交历史

一句话总结:
日常就是add → commit → push origin main → push gitee main;支线用switch -c创建,switch main回主线;回退优先revert,少用reset --hard + push -f。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进