git 撤销中途的某次合入

本文介绍了如何使用Git撤销已合并的分支。通过git log找到特定提交的commit-id,然后在目标分支上执行git revert,接着使用git commit --amend --no-edit修正提交信息,最后推送更改到远程alpha分支。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

已经将分支 v1.0.1 合入了alpha,之后又有同事合入了另外一个分支v1.0.2 到 alpha。
但发现v1.0.1 不需要做这个改动,需要将v1.0.1 从alpha中剔除。git 取消合入的方法命令

先使用 git log找到这一次提交的commit-id,然后切换到 alpha 分支执行如下:

git revert 1c981ffce43ce575e69e7c4cf70af560c0112dc3
git commit --amend --no-edit   
git push origin HEAD:refs/for/alpha  

即可。

### 如何在 VS Code 中还原 Git 操作 在 Visual Studio Code (VS Code) 中,可以通过内置的源代码管理功能轻松执行各种 Git 操作,包括撤销还原之前的提交、暂存区更改以及工作目录中的修改。以下是关于如何在 VS Code 中实现这些操作的具体说明。 #### 还原已提交的操作 如果需要撤消某个特定的提交并恢复到之前的状态,可以使用 `git revert` 或 `git reset` 命令。在 VS Code 的终端中运行以下命令即可完成此操作: ```bash # 创建一个新的提交来逆向应用指定提交的变化 git revert <commit-hash> ``` 上述方法不会改变历史记录,而是通过创建新的提交来修复错误[^1]。如果希望完全移除某次提交及其之后的所有更改,则可采用硬重置方式: ```bash # 将分支指针移动至目标提交,并丢弃后续所有变更 git reset --hard <commit-hash> ``` 注意:该操作会永久删除未保存的工作成果,请谨慎行事! #### 清理暂存区域的内容 当文件被加到暂存区后 (`git add`) ,但尚未正式提交(`git commit`)前决定不再保留这部分改动时,在 VS Code 内可以直接右键点击左侧资源管理器里的相应条目选择「Unstage」选项;或者打开命令面板(Ctrl+Shift+P),输 “Undo Last Git Action”,这相当于执行了如下手动指令: ```bash # 取消最后一次add动作,把文件从staging area返回working tree状态 git reset HEAD <file-name> ``` 对于整个项目范围内的全部取消需求而言,只需省略掉具体的路径参数即能生效全局效果。 #### 处理未跟踪的新文件/废弃旧版副本 针对那些既不属于当前版本控制体系也不属于任何先前快照组成部分的新建文档来说,默认情况下它们是不会自动纳同步流程里面的除非显式声明过一次性的包含关系。因此要彻底消除此类干扰项的话,应该采取下面这样的策略组拳出击——先定位再清除: ```bash # 查看有哪些未经处理过的额外素材存在于此处 git clean -n # 执行实际清理过程(需确认无误后再加'-f'强制标志) git clean -fd ``` 最后一点值得一提的是有关于中途被打断的任务场景下的应急措施安排。“Stashing”技术正好满足这类临时存储的需求而无需立即形成持久化痕迹。正如前面提到的例子那样简单快捷地调用起来吧[$^{3}$]: ```bash $ git stash Saved working directory and index state WIP ... HEAD is now at ... (To restore them type "git stash apply") ``` 一旦时机成熟就可以重新加载原先隐藏起来的数据啦! ```bash # 应用最新的stash内容而不影响现有的改动堆栈结构 git stash apply # 如果想要同时弹出这条记录以便腾出空间给新来的访客则追加上pop关键字 git stash pop ``` 以上就是在Visual Studio Code环境下围绕着Git版本控制系统所展开的一些常见回滚技巧总结分享啦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值