git回退相关操作记录

本文详细介绍了Git的版本控制流程,包括未提交、已提交未推送和已推送三种状态下的回退操作,以及如何在merge后回退到特定版本。针对不同场景,提供了gitreset和gitpush等命令的使用示例,帮助开发者理解和掌握Git的版本管理及冲突解决策略。
摘要由CSDN通过智能技术生成

场景一:未提交

未提交包含以下两种情况:

1》已经在工作区修改了文件,但还未执行 git add 提交到暂存区;

2》已经执行了 git add 提交到暂存作,但还未执行 git commit 提交本地仓库;

回退执行命令:

git reset --hard

2、已提交未推送

这种情况是指已经执行了 git add 提交到暂存区操作,又执行了 git commit 提交本地仓库,但还未 git push 推送到远程仓库。

 2.1 上个版本回退:

git reset --hard HEAD^

2.2 多个版本回退:(N:代表数字,要回退的次数)

git reset --hard HEAD~N

2.3 指定版本回退:

执行如下命令,其中commit_id为占位符需要替换,可通过 git log 命令找到指定的commit_id
git reset --hard commit_id

2.4 直接回退到远程最新版本:

git reset --hard origin/master

3、已推送

这种情况是指已经执行了 git add 提交到暂存区操作,又执行了 git commit 提交本地仓库,还执行 git push 推送到远程仓库。

参考上面的 2.1~2.4 的方法,先强制回退到本地仓库到上 N 个版本,再进行强制推送到远程仓库。

回退到上个版本示例:

git reset --hard HEAD^

git push -f

************************************************************************************************************

merge合并代码回退场景一:git本地merge后,未push到远程仓库,需要回退时:

1、git reflog

2、git reset --hard 1cde2c4

如图:回退到merge前的版本号即可

merge合并代码回退场景二:git本地merge后,已push到远程仓库,需要回退时:

# 1.通过找到想要退回到的哪个commit_id
$ git log
# 2.本地代码变成某个提交记录时刻的代码
$ git reset --hard commit_id
# 3.推送到服务器,一定要加 --force 参数 "master":对应的分支即可
$ git push origin HEAD:master --force

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值