git的功能分支的base分支错了怎么重新提交

1、前言

git环境:一个测试的test分支,一个线上的master分支

写新功能步骤:

1、写新功能的时候是从master分支,新建一个分支出来

2、写完功能会提交并push当前的分支到远端

3、测试时,切换到test分支,将功能分支合并到test分支

4、上线时,切换到master分支,将功能分支合并到master分支,上线功能


  正常流程如上线所说,但是有时会新建分支时,会用错分支,不是从master分支里面新建出来,而是从test分支新建出来,这时是感知不到的,只有等到上线的时候,合并功能分支到master时,push时,发现很多其他提交也要被push和一些Merge branch 'xxxx分支' into test的合并提交,此时肯定是用错了分支创建功能分支。

2、如何解决

先查看案例:

案例git:https://gitee.com/1099764422/recommit-demo

  想要截图那个效果,需要将function_3_from_test分支合并到master,并且解决冲突,接着push时的截图,发现了Merge branch 'function_2' into test,说明用错了git分支写function3。

解决方法是:去到function3分支,将每次提交的代码缓存,接着再从master打出分支,在新分支将每次缓存的代码按提交顺序从头到尾依次应用,就还原了,还原后用新分支的代码合并到master即可。

3、详细步骤

以下步骤都是idea中操作,所以是idea里面步骤

3.1、回退代码

切换到function_3_from_test分支

1、确保分支已经推送到remote

2、选中function3提交1右键选择Reset Current Branch to Here

3、选择hard模式(选择这个模式是因为其他模式不知道为什么会带出很多不知名的提交出来)

4、点击reset按钮,完成操作

5、选中function3提交1右键选择Undo Commmit...,点击ok,完成代码恢复到本地

6、去到Local changes的tab,找到恢复的代码的ChangeList

7、copy提交的备注,右键选择Shelve Changes,将提交的备注写入,点击commit,完成一次代码缓存

8、ctrl+t快捷键update分支代码,从remote将reset操作重置为有全部提交的状态

9、找到下一个提交重复以上步骤
多次提交则重复操作即可

代码缓存下来了

3.2、应用回退代码

从master打出一个function_3分支

1、去到Shelf页面,选择第一个提交

2、右键Unshelf,此时有可能会有冲突,解决冲突,接着apply

3、去到Local Changes页面,右键恢复的change List,点击Commit File..,提交代码

4、重复以上步骤即可

3.3、后记

  上面步骤是界面操作,命令行的命令自己找了,git自带也有一个stash完成界面的缓存代码的操作的。界面是英文的,用中文的找到对应的中文选项即可

相关推荐
Winlifes3 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理4 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123454 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s4 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人5 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人5 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅5 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人5 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr5 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林5 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器