如何撤销git上一次的commit(或已push)

这篇具有很好参考价值的文章主要介绍了如何撤销git上一次的commit(或已push)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何撤销git上一次的commit(或已push)

当多人开发时,我们本地commit后,刚要push,发现忘记pull最新代码,此时会有冲突push失败,
我们想要撤销最近的一次commit
我们先简单介绍一下git
git有三大区【工作区、暂存区、版本库】以及几个状态(untracked、unstaged、uncommited)git保存的不是文件的变化或者差异 而是一系列不同时刻的文件快照

第一种情况:还没有push,只是在本地commit

git reset --soft|--mixed|--hard <commit_id>

commit_id需要是你想要回退的那次提交的id
可以通过 log查看

git log

–mixed 修改本地仓库、暂存区里面的数据为commitId对应快照里的数据 是git reset默认的参数 --mixed可以省略 暂存区的数据会被快照中的数据覆盖 【回退之后,上次commit修改的代码,没有被暂存,但是修改还是被保存了】
– soft 修改本地仓库里面的数据为commitId对应快照的数据(仅改变指向快照的指针指向)【回退之后,上次commit修改的代码,依然暂存,修改的代码保存】
–hard 修改本地仓库、暂存区、工作区里面的数据为commitId对应快照的数据【回退之后,上次commit修改的代码,没有被保存】

commit push 代码已经更新到远程仓库

对于已经把代码push到线上仓库 你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致

git revert <commit_id>

revert之后你的本地代码会回滚到指定的历史版本 这时你在push 既可以把线上的代码更新
注意:git revert 是用一次新的commit 来回滚之前的commit,git reset是直接删除指定的commit 看似达到的效果是一样的,其实完全不同
区别:
第一:上面我们说过,如果你已经push到线上代码库,reset删除指定commit后,你git push可能导致一大堆冲突,但是revert并不会
第二:如果在日后现有分支和历史分支需要合并时候,reset恢复部分的代码依然会出现在历史分支里,但是revert方式提交的commit不会出现在历史分支里
第三:reset是在正常的commit历史中,删除了指定的commit,这时HEAD是向后移动了,而revert是在正常的commit历史中,再commit一次,只不过是反向提交,他的HEAD是一直向前的。
如何撤销git上一次的commit(或已push),git,git

如何撤销git上一次的commit(或已push),git,git文章来源地址https://www.toymoban.com/news/detail-590888.html

到了这里,关于如何撤销git上一次的commit(或已push)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Git】 取消上一次commit或push

    目录 一、取消上一次commit 方法1:使用 Git reset 方法2:使用 Git revert 方法3:使用 Git checkout 二、取消上一次push git push --force git reflog git reset git push --force 三、扩展 commit参数 --mixed --soft --hard --amend 如果你需要取消上一次的 Git 提交,有几个不同的方法可以实现。其中包括撤消提

    2024年02月08日
    浏览(41)
  • idea撤销git add或者commit(未push)或者push的文件

    Undo Commit,Revert Commit,Drop Commit的区别 是否删除对代码的修改 是否删除Commit记录 是否会新增Commit记录 Undo Commit 不会 未Push会,已Push不会 不会 Revert Commit 会 不会 会 Drop Commit 会 未Push会,已Push不会 不会 某次在idea中执行commit后(未push), 发现提交代码错误了想撤回,此篇文章整

    2024年02月13日
    浏览(40)
  • 【Git 操作指南】| 撤销远程仓库的 push 以及 git commit 提交

    执行 git log 查看版本日志,找到目标版本。 执行 git reset --soft version numbere ,如 git reset --soft d8cedc98e008e14a35d3faf424764648fb29d55b ,重置为之前提交的版本,接着执行 git log 查看是否已经退回到之前的版本。 (注意, git reset --soft 只改变了 HEAD 的指向位置,本地代码不会发生改变

    2024年02月16日
    浏览(49)
  • idea撤销git add或者commit或者push的文件

    某次在idea中执行commit后(未push), 发现提交代码错误了想撤回。适用于代码修改完了,已经commit,但是还未push,但是commit里面的有提交错误的代码,这时候可以使用Undo commit,修改后再commit。 commit提交了一次测试记录(未push),新增了代码。(如下图) Undo Commit后之前提交的记录

    2024年04月09日
    浏览(82)
  • 技巧:jetbrain全家桶系列如何撤销已经提交本地仓库但还没push的commit

    按快捷键 alt+9 打开git窗口 可以看到刚误提交的commit,还好还没push到远程库,还有的救 右键选中前一个commit,选reset 可以看到有4种选择,其中 Soft 和 Mixed 都可以在撤销commit的前提下还会留下文件的修改 但是, Hard 和 Keep ,会撤销commit,但是会把所有文件的修改都去掉,辛辛

    2024年02月05日
    浏览(56)
  • ​如何撤销git commit​

    git commit后,还没执行push时, 如何撤销commit。 git add xxFiles git commit -m \\\"add xxx commit\\\" 一、解决方案 1. git reset --soft HEAD~1 执行此命令,本次的(这里HEAD~1)commit会被撤销,commit所对应的修改会撤回到暂存区当中, 即只是撤销了commit操作 ,比较安全,修改不会丢失 2. git reset --mix

    2024年02月11日
    浏览(32)
  • git commit后,如何进行撤销commit操作

    在我们使用git作为版本控制工具进行代码管理之后,经常性的会碰到一个问题:git commit后,如何撤销commit,下面详细讲一下。 git add newFiles git commit -m \\\'新增xx页面\\\' 执行commit后,还没执行push时,想要撤销这次的commit,该怎么办? 解决方案: 我们可以使用命令:git reset --soft

    2024年02月11日
    浏览(42)
  • 利用PyCharm:git commit后,如何撤销commit

    @创建于:2023.04.12 @修改于:2023.04.12 执行commit后,还没执行push时,想要撤销这次的commit。 git log --pretty=oneline git reset --soft HEAD^ 有时候会报错,一直显示More?,可以通过如下方法尝试解决。 解决方法有如下几种: 加引号: git reset --hard “HEAD^” 加一个^: git reset --hard HEAD^^ 换

    2024年02月13日
    浏览(36)
  • git commit之后如何撤销或回滚commit操作

    通常我们用Git提交代码前两步为 此时发现需要撤销本次提交,例如重新修改一下,或者 commit -m 的内容需要调整 撤销commit命令, --soft 为默认参数,此时不删除工作空间的改动代码 ,撤销commit,不撤销add 或者连之前add的内容也撤销,可以使用 --hard 参数,此时删除工作空间的

    2024年02月09日
    浏览(29)
  • git——如何撤销已经push到远程的修改

    先明确四种状态: state 1 (上一次提交) 本地文件编辑后进行保存【操作】 state 2 本地文件保存后进行 git add 【操作】 state 3 提交 commit【操作】 state 4 对commit 进行 push【操作】 state 5 首先,push到远程的提交,肯定是已经在本地提交过的,因此先撤销本地分支。 撤销本地分支

    2024年02月15日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包