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

相关推荐
<但凡.7 小时前
Git 完全手册:从入门到团队协作实战(4)
git·bash
SugarPPig8 小时前
Git 创建一个完全没有提交历史的 master 分支
git
lb29171 天前
git的使用,推送仓库github
git·github
躲在云朵里`1 天前
Git的使用
大数据·git·elasticsearch
悟能不能悟1 天前
在 IntelliJ IDEA 中打开这个用于设置 Git 用户名(Name)和邮箱(Email)的特定弹窗
java·git·intellij-idea
威威猫的栗子3 天前
Git 使用全指南:从配置到免密登录
大数据·git·vscode
Casia_Dominic3 天前
【tmux无法使用鼠标滚轮滚动页面的问题】解决方案
linux·git·github·tmux
Justice link3 天前
Nginx和Apache的区别
git
物联网软硬件开发-轨物科技3 天前
【轨物方案】分布式光伏电站运维升级智能化系列:老电站的数智化重生
运维·人工智能·分布式·git
Misnice3 天前
Git 常用的提交类型
git