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

相关推荐
打盹的小pig3 小时前
git pull 报错
git
Tairitsu_H14 小时前
[版本控制器Git] Git 远程仓库 | 多人协作 | 企业级 Git Flow 开发模型
git·版本控制器·远程仓库
我先去打把游戏先14 小时前
Git-Rebase使用指南-从原理到实战
服务器·git·嵌入式硬件·物联网·ubuntu
kaixin_learn_qt_ing16 小时前
我有两个程序,它们在不同的项目中,但是它们复用了一部分头文件,它们在两个不同的git仓库中,有什么好的办法可以让它们复用吗?
git
greatofdream18 小时前
git rebase时如何解决merge节点冲突问题
大数据·git·elasticsearch
敲敲敲-敲代码1 天前
git安装记录
git
我是人✓1 天前
Git入门:从零开始掌握分布式版本控制
分布式·git
Aurora_eye1 天前
Git 笔记
笔记·git
解道Jdon1 天前
FigCraft把Figma用Rust从零重写了一遍
ide·windows·git·svn·eclipse·github·visual studio
橙橙笔记2 天前
QT安卓软件的制作
android·git·qt·软件