git回退到某个提交

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分支的一次提交'

之前没有出过这样的错误。就算出现也是直接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^

HEAD^ HEAD~1 HEAD~2 其中 HEAD^ HEAD~1 同为上一个版本, HEAD~2 为上两个版本,也就是两次commit,以此类推

如果需要再撤销修改

git checkout index.js

--soft

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

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

--hard

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

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

这个操作会直接恢复到了上一次的 commit 状态。

如果已经push origin

在做完上面的操作后

git push origin -f

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

关于git reset命令總結

git reset --mixed :默认方式,等同git reset;回退到某个版本,保留源码,回退commit和index信息

git reset --soft :回退到某个版本,只回退commit的信息,不会恢复到index file一级;可以再次commit

git reset --hard :彻底回退到某个版本,本地的源码会变为目标版本的内容

相关推荐
天地人-神君3 小时前
将.idea取消git托管
java·git·intellij-idea
Zach_yuan7 小时前
版本控制器Git
linux·git
唐青枫12 小时前
Git 提交时神秘的 create mode 100644 到底是什么?一文告诉你答案!
git
春生野草12 小时前
Git-git stash与分支管理
git
ljh57464911912 小时前
Git合并冲突解决方法
git
悟能不能悟12 小时前
git revert commit和undo commit的区别
git
222you1 天前
Git的diff命令
git
补三补四1 天前
Git 基础操作指南
大数据·git·elasticsearch
222you1 天前
git的命令
git
Coolbike1 天前
Git工作流
git