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

Git如何将一个分支上的修改转移到另一个分支

在我们使用git进行版本控制时,当代码写错分支,怎么将这些修改转移到正确的分支上去呢?这时,我们可以使用git stath命令来暂存我们的修改,然后再切换到其他分支

未commit(提交)操作时

1. 先将修改存入暂存区
git add .
2. 把暂存区内的修改存储起来 
git stash                    
3. 切换到正确的分支 
git checkout dev            
4. 将存储的修改取出来 
git stash pop                

已commit(提交)操作时 

需要撤回commit之前的状态,

git reset HEAD^   

然后继续未commit的步骤即可

已经push到远程仓库时

1.回滚到指定版本

  • 不保留原更改代码

如果你希望完全撤销到某个特定的提交版本,并且不保留之后的所有更改(包括未提交的修改),可以使用git reset命令配合--hard选项。这将把HEAD指针(以及当前分支)直接移动到指定的提交上,丢弃之后的所有更改。

git reset --hard <commit-id>

  • 保留原更改代码,并生成新的提交

如果你希望撤销某个特定的提交,但又想保留该提交之后的所有更改,并生成一个新的提交来替代那个被撤销的提交,可以使用git revert命令。这会在你的项目历史中插入一个新的提交,这个新提交是原来被撤销提交的“反向补丁”。

git revert <commit-id>

  • 强制推送更改到远程仓库

当你通过git resetgit revert修改了本地仓库的历史后,你需要将这些更改推送到远程仓库。由于这些更改改变了远程仓库的历史,你需要使用强制推送(git push -f)来覆盖远程仓库的历史。

git push -f origin 分支名

警告:强制推送会覆盖远程仓库的历史,影响所有共享该分支的协作者。在执行此操作前,请确保所有协作者都了解这一变更,并已经同步了他们的本地仓库以避免数据丢失。

总结

  • 未commit时,临时存储- 切分支- 释放临时存储,已commit时,回撤状态,继续执行未commit时操作
  • 使用git reset --hard来完全撤销到某个特定的提交,但会丢失之后的更改。
  • 使用git revert来撤销某个特定的提交,同时保留之后的更改,并生成一个新的提交。
  • 在修改了本地仓库的历史后,使用git push -f来强制推送更改到远程仓库,但请谨慎操作以避免不必要的问题。
http://www.lryc.cn/news/406012.html

相关文章:

  • jvm-证明cpu指令是乱序执行的案例
  • 《流程引擎原理与实践》开源电子书
  • 谷粒商城实战笔记-52~53-商品服务-API-三级分类-新增-修改
  • uni-app 影视类小程序开发从零到一 | 开源项目分享
  • Python使用正则替换字符串
  • 每日一练,java03
  • 【机器学习】深入理解损失函数(Loss Functions)
  • python实现特征检测算法3
  • 软件更新的双刃剑:从”微软蓝屏”事件看网络安全的挑战与对策
  • Redis 主从搭建
  • LeetCode 129, 133, 136
  • macOS 环境Qt Creator 快捷键
  • 【C# WInForm】将TextBox从输入框设置为文本框
  • minio 服务docker配置
  • 开源模型应用落地-LangChain高阶-智能体探究-自定义agent(五)
  • 16_网络IPC4-数据传输
  • 怎样做好仓库管理工作?如何利用仓库管理系统进行有效管理?
  • PHP-显示所有错误信息
  • js修改hash的方法
  • 机械学习—零基础学习日志(高数10——函数图形)
  • Godot游戏制作 03世界构建1.0版
  • MySql性能调优05-[sql实战演练]
  • go-kratos 学习笔记(1) 安装
  • 蚂蚁集团推出EchoMimic:能通过音频和面部标志生成逼真的肖像动画视频
  • 量化机器人对市场趋势的反应速度
  • 深入指南:VitePress 如何自定义样式
  • 逃离的日常:自闭症孩子的课堂小插曲
  • LLM模型与实践之基于MindSpore的GPT2文本摘要
  • 【Android】使用视图绑定ViewBinding来代替findViewById
  • 字符的统计——423、657、551、696、467、535