git撤回某次commit

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

假设我们已经将本地代码提交到远程分分支上,但是我们想撤回某一个commit或者是对某一个文件的修改进行撤回等操作,我们可以使用以下这几种方式

一、git reset

git reset :回滚到某次提交。
git reset --mixed:此次提交之后的修改会被退回到工作区。不删除工作区改动的代码,撤销commit,撤销git add .【暂存区】
git reset --soft:此次提交之后的修改会被退回到暂存区。不删除工作空间的改动代码 ,撤销commit,不撤销git add . 【用于只想删除该提交本身而不影响其他更改】
git reset --hard:此次提交之后的更改都会被删除,git status 查看工作区是没有记录的(删除工作空间的改动代码,撤销commit且撤销add)

reset命令会更改 Git 存储库的历史记录,这意味着您的提交历史记录将会被修改
reset 命令只能回滚某次的提交,无法满足保留最后一次提交只回滚之前的某次提交。

  1. 回滚代码
git log // 查看所有commit的信息
git reset --hard commit_id // 回滚到指定提交
git push origin HEAD --force // 将本地分支代码强制推送到远处分支

或者

git reset --soft HEAD^  

命令解释:

HEAD^ 表示上一个版本,即上一次的commit,几个^ 代表几次提交,如果回滚两次就是HEAD^^。
也可以写成HEAD~ 1,如果进行两次的commit,想要都撤回,可以使用HEAD~2。
tips:
假设我们有些时候commit的备注写错了,我们可以运行
git commit --amend 进入vim编辑模式,修改完保存即可

  1. 撤回回滚
    假设我们整错了commit_id或者误删了某次commit
git reflog //显示可引用的历史版本记录. 找到要撤回的commit的前面的
git reset --hard commit_id // 恢复到这次修改
git push origin HEAD --force // 将本地分支代码强制推送到远处分支

补充:
使用git log命令只可以查看到HEAD指针及其之前的版本信息,如果版本发生过回退操作,则可能会出现,HEAD指针之后仍存在历史提交版本的情况,而这些提交版本信息通过git log命令是看不到的。

二、git revert

git revert:放弃某次提交。之前的提交仍会保留在 git log 中,而此次撤销会做为一次新的提交。
git revert -m:用于对 merge 节点的操作,-m 指定具体某个提交点。
1)撤销提交

要撤销中间某次提交时,使用 git revert 也是一个很好的选择:

git log
git revert commit_id // 这时候代码会发生冲突 解决冲突 重新提交即可 相当于一次新的commit
git push

三、git rebase

git rebase:您想彻底删除 Git 中的某次提交的内容,可以使用 git rebase 命令并将该提交删除。

也不会在git log中保留, 可以撤销中间某次提交
1)撤销提交

git log
git rebase -i commit_id // 进入vim编辑模式,把要删除的commit的前面的pick改为drop 
git push origin HEAD --force // 推到远程分支上

使用 git reset 命令可以将当前分支的 HEAD 指针移到任意提交,从而使您能够删除 Git 存储库中的提交。
使用 git revert 命令可以撤销指定提交的更改,并创建一个新的提交来保留已撤销的更改的历史记录。
使用 git rebase 命令来删除提交可以永久删除提交并更改 Git 历史记录。

补充:

在工作区撤回某个文件 【也就是在git add .之前】

//这2个命令都不会撤回新建的文件,新建的文件只能手动删除
git checkout -- filepath //放弃该相对路径下的文件的修改
git checkout . //放弃所有文件的修改

在暂存区撤回某个文件 【也就是在git add之后,git commit之前】文章来源地址https://www.toymoban.com/news/detail-517678.html

git reset HEAD filename //放弃该文件的commit,回退到工作区
git reset HEAD // 放弃所有文件的commit,回退到工作区

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

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

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

相关文章

  • git 如何撤销某次远程仓库的提交

    要撤销某次远程仓库的提交,可以按照以下步骤操作: 首先使用 git log 命令查看需要撤销的提交的 SHA-1 值。例如: 上面的 git log 输出显示两个提交,其中最新的提交是一个被称为“revert commit”的提交,它用于撤销另一个提交(即前一个提交)。 使用 git revert 命令来创建一

    2024年02月11日
    浏览(39)
  • git 撤销中间某次提交,保留其他提交的方法

    今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了,之前同事改的代码合了test,但是还没改完,不能上生产,

    2024年02月12日
    浏览(28)
  • git 查看某次commit对应修改的文件

    如果不指定commit_id 默认展示最近一次commit修改的文件 如果 git log 也想看到每次commoit 修改的文件 diff 也能用这个参数

    2024年02月12日
    浏览(29)
  • idea git回滚某次commit【超简单】

    1. idea左下角,如图【Version Control】tag页;能看到自己的commit列表;   2. 在要回滚的commit上右键,选【Revert】;可能会弹出编辑页面/冲突解决页面,确定后【Commit】即可; 3. 本地即回滚成功,重新将这个revert commit push到远程即可;

    2024年02月16日
    浏览(29)
  • 如何撤回git commit

    要撤回 Git 提交,可以使用以下几种方法之一: 使用 git reset 命令 使用 git reset 命令可以撤回最近一次的 commit,并将相应的修改撤回到工作区中。例如,如果要撤回最近一次的 commit,可以使用以下命令:

    2024年02月12日
    浏览(28)
  • Git撤销add 、Git撤销commit、修改commit注释

    1、已经commit但未push,回退本地提交代码: 格式 参数说明: --mixed(默认)    不删除工作空间的改动代码,撤销commit,撤销git add file. --soft(常用) 不删除工作空间的改动代码,撤销commit,不撤销git add file,如果还需要提交,直接commit即可. --hard(慎用) 删除工作空间的改动代码,撤销commi

    2024年02月15日
    浏览(45)
  • git :合并某个分支上某次commit记录到另外一个分支

    需要将A分支的某次提交记录 ,合并到B分支 1)切回到 A分支 找到提交的commit id 可以使用git log 命令 或者 右键上次提交的记录 copy reversion number         git checkout A git log 2)  切回到 B分支  使用 git cherry-pick  A的 commitID ,回车 3)最后git status /git push 如果遇到问题,可以使

    2024年02月16日
    浏览(43)
  • Git-将某次commit从一个分支转移到另一个分支

            应用场景:多个分支并行开发的情况下提交到错误的分支上,或者开发版本都已经准备好了,但是release计划有变,需要调整release里面的features,那么我们可以优雅而从容的面对PM的要求。         多个分支并行开发的情况下,将某次commit提交错分支了,那么久

    2024年02月08日
    浏览(42)
  • git 在 commit 提交之后怎么撤回本地提交

    当我们使用 git 开发时,一般会执行这几个命令: 可以使用下面这个指令撤回: 注意:这个指令只撤回本次 commit 提交,并不会回退您的代码,所以可以安心使用~ 如果只是单纯的commit 注释写错了,可以通过下面这个指令去修改: 完成。

    2024年02月11日
    浏览(38)
  • IDEA中使用git如何撤回commit的代码

    在开发过程中,有时候提交代码会发现提交的代码中有不应该提交的部分,比如说有时候不需要我们提交本地的配置文件,这个时候就需要我们撤销已提交的内容重新提交 这个命令会创建一个新的 commit,将指定的 commit 撤销掉。新的 commit 会保留先前提交的历史记录,并且会根据

    2024年02月11日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包