git在指定分支还原到某次提交的版本

适用场景:在某个分支上想恢复到之前某个提交的版本,且那个版本之后提交的版本都不要了

操作步骤:

1. 切换到指定分支
git checkout 分支名
2. git log 查看提交版本号信息
git log 

像下面的 commit 后面的那一串就是版本号

commit a550c5581814206a2096c1a5fee1caeed01d6a30
Author: test <test@sina.com>
Date:   Tue Feb 4 00:38:15 2020 +0800

    StringBuffer直接改变原字符串,char数组和字符串的转换

commit a2456b6825a4cab009d53ba8bb2cd8a4eb425f6b
Author: test <test@sina.com>
Date:   Tue Feb 4 00:23:53 2020 +0800
3. git reset --hard 版本号
git reset --hard 版本号

比如

	git reset --hard a2456b6825a4cab009d53ba8bb2cd8a4eb425f6b
4. git push -f 强制提交
git push -f 
### Git 撤销本地分支合并操作 当需要撤销已合并到本地分支的操作时,有几种方法可以选择。具体取决于当前所处的情况以及希望达到的效果。 #### 方法一:使用 `git revert` 命令撤销特定的合并提交 如果想要保留历史记录,并且只是简单地取消某次合并的影响,则可以采用此方式: ```bash git revert -m 1 <merge_commit_hash> ``` 这里 `-m 1` 参数指定了要回滚的是第一个父级提交内容;而 `<merge_commit_hash>` 则是要被撤消的那个合并提交的哈希值[^1]。 这种方法会在项目的历史中创建一个新的提交来抵消除指定合并所带来的变化,而不是直接删除该合并本身。 #### 方法二:通过重置 HEAD 来完全移除最近一次未推送过的合并 对于尚未推送到远端仓库的新近合并而言,可以直接将其丢弃而不影响其他任何东西: ```bash git reset --hard HEAD~1 ``` 这条指令会将工作目录恢复至前一个状态(即最后一次正常提交之前),并且不会保存此次合并产生的任何改动[^5]。 请注意,在执行上述命令之前应当确认确实不需要这些变更了,因为这将会丢失所有在此之后所做的修改! #### 方法三:针对更复杂场景下的处理——交互式变基 如果有多个连续的提交都需要调整或去除的话,那么可以考虑运用交互式的 rebase 功能来进行更加精细的操作: ```bash git rebase -i HEAD~n ``` 其中 n 表示向前追溯多少个提交作为编辑范围。在这个过程中可以根据提示选择哪些项应该被跳过、重新排序或是进一步拆分等动作[^4]。 不过需要注意的是,rebase 改变了现有提交的历史结构,因此只应在私有的特性分支或其他不影响团队协作的地方谨慎应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值