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
相关推荐
Csvn9 小时前
WASM
前端
修己xj10 小时前
我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了
前端
FRing0310 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿11 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
moshuying12 小时前
网购能买Token了!
前端
h_654321012 小时前
echarts实现柱状图加一条横线
前端·echarts
风骏时光牛马13 小时前
生成一个后端标题,只需要一个标题,不需要其他的任何文本。
前端
子非鱼@Itfuture13 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李13 小时前
openFeign入门
java·开发语言·前端
馒头不想说话13 小时前
AI当运营,帮你省人力
前端