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
相关推荐
曦夜日长9 小时前
Git系统篇,Git本地使用(一):从“究极进化版“到三个区域的底层原理
大数据·linux·git·elasticsearch
Java后端的Ai之路10 小时前
06-React-Props
前端·react.js·前端框架
Flynt10 小时前
开源"间谍卫星"说数据全是真的,我把它的免key数据源挨个试了一遍
前端·开源·数据可视化
Csvn11 小时前
渲染管线
前端
程序员大阳11 小时前
副队长CSS教程(33)–圆角与透明
前端·css·透明·圆角
志尊宝11 小时前
Vue3 零基础每日笔记(082):文件上传实战——el-upload 校验、自定义上传、头像预览
前端·javascript·vue.js·笔记·#javascript·#vue.js
宵时待雨11 小时前
GIT版本管理2:远程操作与多人协作
git
鬼手点金11 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
柳杉12 小时前
借助 Codex 和可视化工作流,从调研到完整实现,3D 大屏竟然可以这么简单
前端·ai编程·数据可视化
IMPYLH12 小时前
HTML 的 <wbr> 元素
前端·html