首页 > 其他分享 >git回退到某个提交

git回退到某个提交

时间:2022-10-03 10:22:26浏览次数:42  
标签:reset HEAD git -- 提交 回退 commit

git是一个分布式版本控制软件,分布式版本库的做法使源代码的发布和交流都极为方便,因此有不少用户都在使用git。最近小编也正在学习git这款软件,发现要想熟练运用git,学会git中的一些命令是很重要的,如果我们要回滚到某个提交,就需要使用到回退命令,下面小编给大家具体来介绍一下。

git回退到某个commit

git reset --hard HEAD^ 回退到上个版本

git reset --hard HEAD~3 回退到前3次提交之前

git reset --hard commit_id 退到/进到 指定的commit

git push origin HEAD -- force 强退至远程

git回退到某个commit 推送远程

1.先查询对应的提交历史,使用如下命令:

git log --pretty=oneline

2、版本回退,使用如下命令:

git reset --soft commitID //只删除commitID之后的提交记录log,代码的改动还在。

git reset --hard commitID //彻底删除commitID之后所做的改动,代码也一起回退回来了。

(慎重用,用前最好备份一下代码,或者用git diff 生成一个patch)

3.把当前分支push到远程仓库并且让远程仓库和当前分支保持一致,使用如下命令(假定当前分支为master):

git push -f origin master

 

 

在 master 分支做了一次 commit 

git add index.js
git commit -m '自以为是在开发分支其实是在master分支的一次提交'
1
2
之前没有出过这样的错误。就算出现也是直接push了然后再 reset 回滚然后再次 push -f。
撤回本地上次commit
git reset --soft HEAD^

如何合适的解决这种情况

reset的三个参数

–mixed(默认参数)
重置位置的同时,只保留Working Tree工作目录的內容,但会将暂存区 和 Repository 中的內容更改和 reset 目标节点一致,所以原节点和Reset节点之间的变更文件,会放入Working Tree工作目录中。

简单来说就是:不删除工作空间改动代码,但是撤销commit,并且撤销git add

git reset --mixed HEAD^ 和 git reset HEAD^
1
HEAD^ HEAD~1 HEAD~2 其中 HEAD^ HEAD~1 同为上一个版本, HEAD~2 为上两个版本,也就是两次commit,以此类推
如果需要再撤销修改

git checkout index.js
1
–soft
重置位置的同时,保留 working Tree 工作目录和暂存区的内容,只让 repository 中的内容和 reset 目标节点保持一致,所以原节点和reset节点之间的变更文件会放入暂存区中。

简单来说就是:不删除工作空间改动代码,撤销commit,不撤销git add

–hard
重置位置的同时,直接将 working Tree工作目录、 暂存区及 repository 都重置成目标 reset 节点的內容。

简单来说就是:删除工作空间改动代码,撤销commit,撤销git add

这个操作会直接恢复到了上一次的 commit 状态。
如果已经push origin
在做完上面的操作后

git push origin -f
1
一般在撤回回滚的操作时候请记录好 commit 的版本号,以防再次出现失误无法挽回

关于git reset命令總結
git reset –mixed :默认方式,等同git reset;回退到某个版本,保留源码,回退commit和index信息
git reset –soft :回退到某个版本,只回退commit的信息,不会恢复到index file一级;可以再次commit
git reset –hard :彻底回退到某个版本,本地的源码会变为目标版本的内容

标签:reset,HEAD,git,--,提交,回退,commit
From: https://www.cnblogs.com/klb561/p/16750105.html

相关文章

  • Git基础操作
    参考博客:Git基础操作-强哥不强-博客园(cnblogs.com)拉取代码使用clone复制远程仓库[email protected]:chen-LinQiang/my-notes.git在已有仓库中拉取代......
  • 学会 Git 01:Git 入门
    Git的数据库Git是一个分布式版本管理系统,可以在任何时间点将文件的状态作为更新记录保存起来。Git有以下两种数据库:远程数据库:有专有的服务器,可多人共享本地数据库......
  • Git: completion
     Linux:source/etc/bash_completion.d/gitsouirce/usr/share/bash-completion/completions/git apt-getinstallgit-corebash-completion source"$(p......
  • 拼接Json数据可以直接提交到AB框架Rest服务端(主从表)
    //=============================================================================== let_this=this letsalesorderdata=_this.params _this.salesorder.a......
  • git 新建分支
    查看远程分支gitbranch-a查看本地分支gitbranch切换至分支#gitcheckoutdev切换新分支#gitcheckout-bdev删除本地分支gitbranch-ddev......
  • pycharm 添加github 账号提示Invalid authentication data. Remote host terminated..
    pycharm设置github账号时,提示Invalidauthenticationdata.Remotehostterminated...,网上翻了很多解决方案都不行,于是灵机一动,既然是Remotehostterminated...,会不会和......
  • gitlab CI
    stages:-buildbuildandtest:stage:buildonly:-tagstags:-shellscript:-unzipupdate.zip-ls-whoami......
  • git 命令行操作
    开发实践:1.在开发中,dev分支提交了4个commit,push到了远程,提了合并master的pr.leader审核打回两个问题commit,需要修改.在本地修改新增了两个commit,现在需要将修改的co......
  • 【小项目】微信定时推送天气预报Github项目使用及原理介绍-包含cron、天气预报、常用a
    一、资料链接1、github地址https://github.com/qq1534774766/wx-push2、教程地址https://blog.csdn.net/qq15347747/article/details/1265217743、易客云API(自动发送......
  • git常用命令
    笔记主要内容为git常用命令全局设置gitconfig--globaluser.namexxx:设置全局用户名,信息记录在~/.gitconfig文件中[email protected]:设置......