git本地分支对齐远程分支

记录一下今天碰到的一个小问题

前因是基于'master'拉取了一个新分支来开发东西,但是我本地的最新的分支和远程的分支居然差着399个提交Σ(⊙▽⊙"a,而且要提交的东西我同事拉了最新的分支之后他哪儿是有的

++也就是说我本地的分支和线上的分支差着很多提交,但是++ 这些提交只存我本机,没有推送到远程

那么问题来了,我需要本地的这些更改之后正确的代码,但是我的提交是没有意义的,那怎么消除这些提交呢

1:更新本地的远程分支镜像,拿到远程最新状态

先查看已配置的远程仓库(大部分都是叫'origin',但查一下更放心)

复制代码
git remote

输出的一般都是
```
origin
```
这个就是远程仓库名

拉取远程最新的状态(不执行 fetch,你看到的 origin/xxx 是旧缓存,重置会出错)

复制代码
git fetch origin

注:origin 是远程仓库别名,不是分支,不要想着git fetch master就能拉倒最新的master,master是分支名称,origin是仓库名称,别搞混,如果你只想拉取master的话那就是:

复制代码
git fetch origin/master

'/'不能省!!!!,必须这样写,你想拉其他的分支就把master换成那个分支名称即可

2:把本地分支强制对齐远程分支

重置本地分支到远程状态

⚠️ 注:你当前所在那个分支,执行的就是把你当前的分支对齐远程的你输入的分支,记得切换好分支再执行对齐

例:我想对齐本地的dev和远程的dev

那代码就是:先切换到dev,然后同步分支

复制代码
git checkout dev

git reset --hard origin/dev

同步完之后本地的dev会强制同步为远程的dev,那个提交会消失不再提示

再强调一遍,这些操作的前提是:

1:远程的分支是最新最正确的

2:你本地的代码需要提交的更改都是远程分支更改过的
3:本地的提交都会丢失,没有你拉取之后二次更改的代码

因为reset的本质就把远程的某个分支覆盖掉本地的某个分支,所以本地那些更改都会消失

3:最后:一键校验全套命令(修复完必跑)

老规矩,先拉取一下最新的仓库

复制代码
git fetch origin

然后branch -vv,这条命令会列出所有本地分支和对应的远程跟踪分支,看每一行后面状态,都是 up to date 就代表全部本地分支都和远程同步完毕

复制代码
git branch -vv
相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
Winlifes1 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大1 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师2 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端