git reset 命令详解 git revert命令详解。

这篇具有很好参考价值的文章主要介绍了git reset 命令详解 git revert命令详解。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git reset 命令详解 git revert命令详解。,git应用,git,github,npm

reset命令

介绍

git reset 命令格式为:
git reset [ --soft | --mixed | --hard ] [< commitid >]
在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。

参数

soft:
–soft参数只将其它的commit重置到你选定的HEAD,index和working copy中的数据不变。
mixed:
–mixed参数是将HEAD和index重置到你选定的HEAD,而working copy不变。
hard:
–hard是将HEAD,index,working copy同时改变到你规定的commit上。
注意:commitid是每次你要回退到的那个commit的id,它可以通过git log获取。

使用

commit还没有push

git reset 命令详解 git revert命令详解。,git应用,git,github,npm

可以看到我新进行了一次提交,但是还没有push。此时我发现,我提交错了,要撤回这次提交。
执行:

git log

git reset 命令详解 git revert命令详解。,git应用,git,github,npm
要退回到错误提交的上一次提交。

# 什么都不写 默认 --mixed
git reset 0997fab2fa0bfa468cc5c55e56d7df0491869c3a

git reset 命令详解 git revert命令详解。,git应用,git,github,npm
可以看到,执行了命令之后版本退回去了,但是修改的内容还在。
如果不想要修改的内容了

# --hard 丢弃修改的内容
git reset --hard 0997fab2fa0bfa468cc5c55e56d7df0491869c3a

git reset 命令详解 git revert命令详解。,git应用,git,github,npm
退回到了指定版本,修改的内容也没了。

commit 已经push

回退的方式同上,执行完上面指定命令后 可以看到,线上代码还在错误提交那里,本地代码再18:28提交的那一次那里。右下方出现小蓝点,说明线上代码比本地代码更新。

git reset 命令详解 git revert命令详解。,git应用,git,github,npm
此时如果你push,会提示:
git reset 命令详解 git revert命令详解。,git应用,git,github,npm
点击merge就又回去了,完全没退回去。
此时应该执行:

# 有可能会让你输入用户名、密码。
git push --force

git reset 命令详解 git revert命令详解。,git应用,git,github,npm

git reset 命令详解 git revert命令详解。,git应用,git,github,npm
这样远程代码也就被回退了。

补救

如果我们通过git reset --hard将版本回退到之前的版本了,那我们还是可以补救的,先通过git reflog命令,找到要回退的commitId,然后通过命令:git reset --hard commitId来恢复。

git revert命令

revert说明

  由于某些文章说的说法可能不是很明确,所以导致一部分小袁同志们对revert有一定的误解,一开始我也很难理解revert到底是干什么的。毕竟用于版本回退的都已经有git reset了,为什么还要再出一个git revert?
  其实呢,revert它不会想reset一样”带你回到“那个你指定的提交,并假装那个提交之后的后续提交都没有发生。它是用于单个提交的逻辑否定 -并且单独提交- 保留后续提交

举例

比如:
我们有一个文件里面写了:

提交A
提交B
提交C
提交D

第一次我们把它改成:

提交A
2提交
提交C
提交D

并提交 假设commitId是tijiao1

第二次我们把它改成:

提交A
2提交
提交C
4提交

并提交 假设commitId是tijiao2

之后我们进行revert:
git revert tijiao1
此时结果会变成:

提交A
提交B
提交C
4提交

所以我们要知道revert是只撤回指定的提交,并保留后续的提交
如果你想让版本直接回退到tijiao1并且取消后续所有提交那你应该使用reset

命令

revert分两种,因为commit分两种。
一种是常规的 commit,也就是使用 git commit 提交的 commit;
另一种是 merge commit,在使用 git merge 合并两个分支之后,你将会得到一个新的 merge commit,merge commit 和普通 commit 的不同之处在于 merge commit 包含两个 parent commit,代表该 merge commit 是从哪两个 commit 合并过来的。
常规的revert:

//撤回指定的任意提交
git revert commitId
//撤回最后一次提交
git revert HEAD
//撤回倒数第二次提交
git revert HEAD^

merge commit 的revert:加上-m表示撤回哪一个分支的。它的数据是1或2.
git reset 命令详解 git revert命令详解。,git应用,git,github,npm文章来源地址https://www.toymoban.com/news/detail-605572.html

//保留第一个分支为主线
git revert -m 1 commitId

到了这里,关于git reset 命令详解 git revert命令详解。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git 的rebase、reset、revert区别?

    rebase 、 reset 、和 revert 是 Git 中用于修改提交历史的三个不同的命令,它们的作用和效果有所不同。 1. rebase : git rebase 用于将一个分支的提交移到另一个分支上,并重新应用这些提交。主要有两种用途: 整理提交历史 :将多个小的提交合并成一个更为清晰的提交历史,避免

    2024年01月21日
    浏览(50)
  • git:代码回退restore 、reset、revert

    友好提示看这篇需要对git有一定了解!!! git中有很几个关于代码回退的命令:restore 、reset、revert ,初学git的同学们可能搞不清楚什么时候该用哪个,根据我的一点点经验,简单介绍一下它们,希望能帮到大家 (我的水平有限,内容仅供参考 . ,哪里有问题,欢迎指出) 一: restore(恢复) 针对

    2024年02月05日
    浏览(30)
  • git版本回退(git reset、git revert、git stash)

    本文 git 相关命令: git reset: 回退版本,可指定某一次提交的版本。 git reset [--soft | --mixed | --hard] commitId 。 git revert: 撤销某个提交,做反向操作,生成新的commitId,原有提交记录保留。 git revert commitId 。 git commit --amend: git commit –amend 既可以对上次提交的内容进行修改,也

    2024年02月08日
    浏览(41)
  • git代码回滚是使用reset还是revert

    时光不能回退,Git却允许我们改变历史。 想要让Git回退历史,有以下步骤: 快捷命令: 【注:HEAD是指向当前版本的指针,HEAD^表示上个版本,HEAD^^表示上上个版本】 如果修改到的文件比较少,我们可以不通过命令回滚的方式,手动删除之前的修改,再进行提交。 reset和reve

    2024年02月07日
    浏览(74)
  • 【git 使用】超级好用的 git reset 和 git revert 功能对比和使用方法

    首先你要知道 git 区分暂存区和工作区,如果你用过 sourcetree 你就会知道 git reset 命令用于将当前分支的 HEAD 指针移动到指定的提交,并且可以选择性地修改工作区和暂存区的状态。 git reset 命令有几种常用的用法,主要包括: git reset --soft commit-id:  被 reset 的提交会放到暂存

    2024年02月20日
    浏览(34)
  • idea中git相关知识(revert,reset,stash/unstash changes使用)

    白色:已经加入版本控制,已提交,无改动 蓝色:已经加入版本控制,已提交,有改动 绿色:已经加入版本控制,还未提交 红色:未加入版本控制 工作区,暂存区,版本库 ● 工作区:项目目录,开发存放代码的地方。 ● 暂存区:数据暂时存放的地方。待提交区,存放有

    2024年02月05日
    浏览(43)
  • git版本回退:revert回退其中一个提交/reset回退到某个版本

      对于已经push或没有push的,回退commit方式一致。只是最后push 的时候 ,如果修改了已经push 的commit,那么需要使用git push -f 区别:git reset commitID;  回退到某个版本。中间的版本都会回退。            git revert commitID; 只将commitID的代码回退。中间的版本不变。且会形成一条

    2024年02月12日
    浏览(38)
  • Git reset命令后如何恢复到最新版本

    Git reset命令后,可以使用以下两种方法恢复到最新版本: 该命令可以查看所有Git操作的记录,包括reset命令。 例如,假设您使用以下命令将HEAD指针回退到 HEAD^^ 版本: 然后,您可以使用以下命令查看reflog记录: 输出结果中会显示所有Git操作的记录,包括reset命令。 要恢复到

    2024年04月11日
    浏览(36)
  • vs2019用git推送到github报错:Recv failure: Connection was reset

    详细报错信息: 正在推送 master 将分支推送到远程存储库时遇到错误: Git failed with a fatal error. Git failed with a fatal error. unable to access \\\'https://github.com/sfssa/MT4Library.git/\\\': Recv failure: Connection was reset 解决办法: Windows+R输入CMD打开命令行: 在命令行中输入:ping www.github.com,得到下图所

    2024年02月07日
    浏览(39)
  • git reset --hard详解

    提示:这里简述项目相关背景: 在企业中使用git进行版本回退时,经常会用到 git reset命令,但有时使用参数并不相同: git reset 节点id git reset --hard 节点id (1)当加参数–hard时 此时不但将本地的HEAD指针指向了上一个版本,重置了暂存区的内容,而且还修改重置了本地工作区

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包