当前位置: 首页 > news >正文

代码误写到master分支(或其他分支),此时代码还未提交,如何转移到新建分支?

问题背景

有时候,我们拿到需求,没仔细看当前分支是什么,就开始撸代码了。完成了需求或者写到一半发现开发错分支了。
比如此时新需求代码都在master分支上,提交必然是不可能的,所有修改还是要在新建分支上进行,最后测试通过,才能合并到master分支。

如果只是修改很少的代码,可以从master分支拷贝出修改的文件,然后放弃所有修改,再新建分支,最后将拷贝的文件覆盖原来想修改的文件。如果已经修改了很多个文件的代码,再这样修改未免有点奔溃了,不过我们可以用下面的方法解决。

这时最理想的方法,就是将改动暂存在本地,然后基于master分支新建一个开发分支如 new_branch ,然后将改动提交到 new_branch;测试通过后再合并到master。

方法一:

通过以下步骤将 master 分支上的修改代码移到一个新的分支上:

  1. 确认当前分支为主分支,确认 (master) 前有 * 星号 * 表示当前分支为主分支。
git branch
  1. 创建一个新分支并切换到新分支,如 new_branch 分支。
git checkout -b new_branch
  1. 最后,将修改的代码添加到暂存区并提交修改的代码 :
git add . //添加到git暂存区
git commit -m "xxxxxx"
git push origin new_branch

如果你需要将其他分支上的修改代码移动到新的分支上,也可以按照上述步骤操作。

方法二:

  1. 首先,使用以下命令将分支本地修改保存到 git 缓存区 ,以备后续使用:
git stash

暂存完毕后执行 git status 会显示不出本地的修改。

  1. 再拉取当前分支最新代码(如果同事在当前分支有提交的话)
git pull
  1. 新建并切换到新分支,如new_branch
git checkout -b new_branch
  1. 接着,将之前暂存本地的修改释放出来应用到 new_branch 分支上:
git stash pop

这时执行 git status 可以看到本地修改又显示出来了。

  1. 最后,正常提交代码到新分支 new_branch :
git add .
git commit -m "xxxxxx"
git push origin new_branch

注意:git stash 命令最好不要经常用,不然很容易忘记啥时候在隐藏空间存了代码。

延伸:git stash pop/apply 区别

git stash pop //应用一次隐藏的更改并将其从堆栈中删除
git stash apply //应用隐藏的更改后保留它们以供将来使用,不会删除

可参考:
Git 实际操作应用 - 代码写错了分支怎么解决

http://www.lryc.cn/news/42323.html

相关文章:

  • java多线程之线程安全(重点,难点)
  • 如何免费使用chatGPT4?无需注册!
  • Android Flutter在点击事件上添加动画效果
  • VSCode嵌入式开发环境搭建
  • 数据结构之栈的使用
  • QMessageBox手动添加按钮并绑定按钮的信号
  • 【C++进阶】位图和布隆过滤器
  • Android开发-Android UI与布局
  • 在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法
  • 【11】核心易中期刊推荐——人工智能 | 图形图像处理
  • Spring 中的事件发布与监听
  • c++ 一些常识 2
  • 用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X!
  • 3分钟阐述这些年我的 接口自动化测试 职业生涯经验分享
  • 十大Python可视化工具,太强了
  • 五.ElasticSearch的基础+实战
  • Oracle的学习心得和知识总结(十三)|Oracle数据库Real Application Testing之Database Reply实操(一)
  • CAD外部参照如何重新定位?CAD外部参照重定位步骤
  • 11. C#高级进阶
  • 网络编程套接字( TCP协议通讯流程)
  • WPF毛笔字实现过程
  • MHA实现mysql数据库高可用
  • leetcode每日一题:55. 跳跃游戏
  • 【C++】map 和 set
  • 基于SpringBoot的酒店管理系统
  • JAVA框架知识整理
  • 运算放大器:电压比较器
  • Linux的基础知识
  • 【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序
  • 常见的卷积神经网络结构——分类、检测和分割