一、使用git rebase命令

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

以下是删除 Git 提交内容的步骤:

  1. 找到要删除的提交的哈希值。可以使用 git log 命令查看提交历史记录,然后找到要删除的提交的哈希值。

  2. 在终端中使用 git rebase -i 命令并指定要删除的提交的哈希值。例如,要删除哈希值为 abc123 的提交,您可以运行以下命令:

git rebase -i abc123~1
git rebase -i HEAD~1

  在这里,abc123~1 表示要删除的提交的前一个提交。

  1. 然后 Git 会打开一个交互式编辑器,并显示一个类似于下面的文本:
pick abc123 commit message
pick def456 another commit message
pick ghi789 yet another commit message
  1. 将要删除的提交所在的行的单词 pick 替换为单词 drop。例如,如果要删除 abc123,则应将第一行更改为:
drop abc123 commit message
  1. 保存更改并关闭编辑器。

  2. 然后 Git 会自动重播您的提交,并在重播时跳过要删除的提交。如果需要,您可能需要解决任何冲突,并提交最终更改。

注意,使用 git rebase 命令来删除提交可以永久删除提交并更改 Git 历史记录。如果您不确定如何使用 git rebase 命令,建议在使用前备份您的 Git 存储库。

二、使用git revert命令

使用 git revert 命令可以撤销指定提交的更改,并创建一个新的提交来保留已撤销的更改的历史记录。

以下是使用 git revert 撤销提交的步骤:

  1. 找到要撤销的提交的哈希值。可以使用 git log 命令查看提交历史记录,然后找到要撤销的提交的哈希值。

  2. 在终端中使用 git revert 命令并指定要撤销的提交的哈希值。例如,要撤销哈希值为 abc123 的提交,您可以运行以下命令:

git revert abc123
  1. 然后 Git 会打开一个编辑器,让您输入此次撤销提交的注释。如果您希望使用默认注释,请直接关闭编辑器。

  2. 最后,Git 将创建一个新的提交,用于撤销您要撤销的提交所做的更改。这个新的提交将保留已撤销的更改的历史记录。您可以使用 git log 命令检查您的提交历史记录以确认撤销操作已成功完成。

需要注意的是,使用 git revert 命令撤销提交会创建一个新的提交,这意味着您的 Git 历史记录将包含一个新的提交来保留已撤销的更改的历史记录。这与使用 git reset 命令删除提交不同,后者会直接删除提交及其历史记录。

三、使用git reset命令

使用 git reset 命令可以将当前分支的 HEAD 指针移到任意提交,从而使您能够删除 Git 存储库中的提交。

以下是使用 git reset 删除提交的步骤:

  1. 找到要删除的提交的哈希值。可以使用 git log 命令查看提交历史记录,然后找到要删除的提交的哈希值。

  2. 使用以下命令来删除该提交:

git reset --hard <commit-hash>

 

其中 <commit-hash> 是您要删除的提交的哈希值。

  1. 运行此命令后,Git 将删除所有在该提交之后进行的更改,并将您的当前分支 HEAD 指针移动到要删除的提交上。

需要注意的是,使用 git reset 命令删除提交会更改 Git 存储库的历史记录,这意味着您的提交历史记录将会被修改。因此,您应该谨慎使用此命令,并确保您已经了解了删除提交的后果。

另外,请注意,使用 git reset --hard 命令删除提交时,将会删除该提交及其之后的所有更改。如果您只想删除该提交本身而不影响其他更改,请使用 git reset --soft 命令。这将将 HEAD 指针移到要删除的提交上,但不会更改 Git 存储库中的文件或文件夹。这样,您就可以重新提交您想要保留的更改

  4.如果您已经将更改推送到 Git 存储库的远程分支,并且想要删除提交,可以使用 git push --force 命令将更改强制推送到远程分支。但是,请注意,强制推送会更改远程分支的历史记录,并且可能会影响其他人正在使用的分支。因此,在进行强制推送之前,应该确保其他人知道并同意这样做。

使用以下命令将更改强制推送到远程分支:

git push --force <remote-name> <branch-name>  

其中 <remote-name> 是远程仓库的名称,<branch-name> 是要推送更改的分支名称。此命令将强制将更改推送到远程分支,并覆盖远程分支的历史记录。如果其他人正在使用该分支,则可能需要通知他们进行相应的更改。

请注意,强制推送更改可能会对其他人造成影响,因此应该谨慎使用。如果您想要删除提交,但不想对其他人造成影响,则可以使用 git revert 命令来撤消该提交所做的更改,而不会修改 Git 存储库的历史记录。

 

 

git撤销某一次commit提交的更多相关文章

  1. Git: A分支上的commit提交到B分支上

    1. 执行git log -3 --graph A,查看A分支下的commit: 注:commit 后面的hash值代表某个commit,这里把”82f1fb7138c5860cc775b4b5ea7 ...

  2. git 删除、合并多次commit提交记录

    合并多次记录 1. git log找到要合并的记录的数量. 2. git rebase -i HEAD~5 将最上面一个的记录选为pack,下面记录都改为s. ================= 删除 ...

  3. git撤销中间的某次提交

    这几天在开发一个新功能,应为着急上线,所以就把代码提交上去了,当现在有时间又要再改改,又要把我那次提交全部删掉,想重新再写,但是代码已经合了,而且还有其他同事的代码,我的提交在中间的某个部分,所以我想 ...

  4. git 撤销上一次 commit

    1.本地 commit,没有推到远程仓库 可以 git reset --soft <commit_id>,commit_id 是要回退到的某一版本 然后再进行修改,再commit, 如果需 ...

  5. Git 撤销中间某次的提交记录

    今天遇到一个问题,一周前一位同事把非发布代码合并到发布分支上并已发布线上,在这个提交点后已经有了很多次的提交记录,所以不能直接回滚,使用到了gIt提供的revert.以此记录. git revert ...

  6. Git 撤销所有未提交(Commit)的内容

    撸了好多代码,但是突然设计改了(~~o(>_<)o ~~):或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个):那,怎么办呢,都不想了...Git 比人聪明,所以能很 ...

  7. Git撤销对远程仓库的push&commit提交

    撤销push 1. 执行  git log查看日志,获取需要回退的版本号 2. 执行 git reset –soft <版本号> ,如 git reset -soft 4f5e9a90ed ...

  8. Git 实用操作:撤销 Commit 提交

    有的时候,改完代码提交 commit 后发现写得实在太烂了,连自己的都看不下去,与其修改它还不如丢弃重写.怎么操作呢? 使用 reset 撤销 如果是最近提交的 commit 要丢弃重写可以用 res ...

  9. git 撤销提交的文件

    一.问题 近期在使用git时遇到一个问题,就是在git上传文件时,将一个100兆的大文件添加到了git,并执行了push操作,这时在上传完毕后,会提示这个错误 Large files detected ...

  10. 痞子衡嵌入式:第一本Git命令教程(5)- 提交(commit/format-patch/am)

    今天是Git系列课程第五课,上一课我们做了Git本地提交前的准备工作,今天痞子衡要讲的是Git本地提交操作. 当我们在仓库工作区下完成了文件增删改操作之后,并且使用git add将文件改动记录在暂存区 ...

随机推荐

  1. 使用git&GitHub通过两台电脑协同作业,助力办公室摸鱼

    前情提要:工作有时候负荷比较小,会接一些咸鱼上的活儿或者自己学点软件技能,这时候会出现一个情况,公司笔记本一般不带回家,家里台式机,白天在公司摸鱼编辑的文件,晚上回家想接着干怎么办呢,或是晚上在家干的 ...

  2. The Little Book of Rust Books

    https://lborb.github.io/book/title-page.html https://blog.logrocket.com/unsafe-rust-how-and-when-not ...

  3. 【技术指北】通过SMB协议在iOS和Windows之间传输文件

    windows操作 新建文件夹 设置文件夹的属性,选择共享 设置高级共享,权限选择完全控制 选择共享,选择Everyone cmd - ipcofig,获取ipv4地址 iOS操作 打开文件管理器 选 ...

  4. 让 rtb 不显示 横纵 滚动条的方法

    让 rtb 不显示 横纵 滚动条的方法: a.设置属性: tb.ScrollBars=None; b.设置属性:rtb.WordWarp=False; c. 添加事件代码: rtb.ContentsR ...

  5. jxg项目Day2-git

    申请了我自己的gitee账号,建了我的仓库,在idea中点这个,然后就算漫长的自动下载的过程.. 对分支和冲突的理解:每个人都有自己的develop分支,可以commit到本地的分支,可以push到远 ...

  6. Hadoop服务启动失败

    Hadoop服务启动失败今天启动Hadoop时,终端报了一个新的错误 ```bashStarting namenodes on [192.168.19.128]192.168.19.128: ssh: ...

  7. 1.3Dmax界面_试图操作

    一.初始界面 1.菜单栏(软件的核心) 2.工具栏 3.石墨工具 4.命令板块 5.场景大纲 tools--> new Scene Explorer 创建的物体信息就会从出现在这里 6.视图窗口 ...

  8. Unity打包ARCore项目失败,但是其他安卓项目成功

    https://blog.csdn.net/lxbhahaha/article/details/111269980

  9. mongodb定时备份

    1. https://www.jianshu.com/p/a9352e28e2d6   (未测试) 通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操 ...

  10. Postgresql 或GreenPlum 查询结果部分字段转json格式并保留字段名(row_to_json)

    -- 一些搜索结果给出 部分字段转json保留原字段的方式是用子查询select row_to_json(t) from ( select id, text from words ) t 但是如果子查 ...