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完成界面的缓存代码的操作的。界面是英文的,用中文的找到对应的中文选项即可

相关推荐
handler0138 分钟前
Git 核心指令速查
linux·c语言·c++·笔记·git·学习
二宝哥1 小时前
大数据之yum安装git
git
牛奶咖啡132 小时前
Git实践——git远程仓库操作
git·git远程仓库的创建·github创建仓库·git将本地仓库推送到远程仓库·使用git克隆远程仓库到本地·git分支的创建与合并·git冲突的产生与解决
随风,奔跑3 小时前
Git学习笔记
笔记·git·学习
Gary Studio4 小时前
Git vscode 插件推荐
ide·git·vscode
StackNoOverflow4 小时前
IDEA + Git + Gitee 全流程实战:从安装、提交到解决冲突
git·gitee·intellij-idea
淘矿人18 小时前
从0到1:用Claude启动你的第一个项目
开发语言·人工智能·git·python·github·php·pygame
lpfasd12319 小时前
Git/Gitee/GitHub 3 个安全凭证详解
git·gitee·github
李日灐1 天前
< 7 > Linux 开发工具:git 版本控制器 和 cgdb/gdb 调试器
linux·运维·服务器·开发语言·git·调试器·gdb/cgdb
Gust of wind1 天前
idea结合git和Gitee的初步使用
git·gitee·intellij-idea