1. 问题

如果将有问题的代码提交到代码仓库甚至已经push到远端,这个时候就得想办法把提交撤销。一种方案是使用git revert,不过会造成历史记录留存的问题,git revert实际上是将某个版本又重新提交了一遍,之前提交的历史记录仍然存在。

2. 解决方案

如果想删除远端的提交记录,可以考虑使用git reset指令:

git reset --hard xxx (需要恢复版本的 commit id)
git push --force origin HEAD

git reset的意思是指定某个代码版本,将仓库重置成那个版本然后提交到远端。至于那个版本之后的提交记录git就不管了,所以在进行这个操作之前最好进行本地备份。

另外一个问题是这个指令普通用户可能无法使用,通常这个指令需要的权限很高,Git实现客户端一定会对其作权限控制。例如在Github中使用的时候有的用户会提示:

remote: Support for password authentication was removed on August 13,2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for ‘xxxx’ ...

原因是因为2021年8月13日开始,Github中通过用户名+密码的认证方式被移除了,只能通过token的方式进行认证。token需要在Github的个人设置中进行设置。

3. 参考

  1. Support for password authentication was removed on August 13, 2021

Git使用经验总结3-删除远端提交记录的更多相关文章

  1. 如何永久删除git仓库中敏感文件的提交记录

    如何永久删除git仓库中敏感文件的提交记录 参考: 1. https://help.github.com/articles/remove-sensitive-data/

  2. git log 查看指定文件的提交记录

    使用git log除了可以看整个仓库的提交记录外,还可以指定某个文件的提交记录. 1. 查看指定文件的历史提交记录 命令: git log -- <file> 说明:只需要指定文件名称. ...

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

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

  4. Git彻底删除历史提交记录的方法

    有时候我们可能会遇到git提交错误的情况,比如提交了敏感的信息或者提交了错误的版本.这个时候我们想将提交到代码库的记录删除,我们要怎么做呢? 首先,我们需要找到我们需要回滚到的提交点的hash,可以使 ...

  5. git blame 查看某行代码提交记录

    1. 在当前git项目目录下执行 git blame -L 38,38 <filename> 例子:  git blame -L 38,38 src/component/BarCode/i ...

  6. SVN项目迁移到Git上(并带有完整的提交记录)

    公司需求:早期的一些项目使用的是SVN,现在想要更换为Git,需要代码迁移并且能在Git上看到之前在SVN中的项目的提交记录,公司没有使用gitlab,代码都push在公司的服务器上,用的是Torto ...

  7. Git删除已提交的文件

    Git删除已提交的文件 Git删除已提交的文件 定位文件 删除文件 参考链接 昨天通过Git Bash提交代码的时候遇到了由于单个文件大小超过100M,导致代码上传失败的问题.考虑到那个大文件是用于训 ...

  8. gitee删除上传到的远程分支的提交记录

    在实际开发中可能也经常会遇到写完代码后提交到远程分支但发现写的提交信息有误,不符合规范.由于自己的gitee账号可能没有修改提交记录的权限.因此最佳的解决方法是,撤销本地分支当前的提交记录,将代码回滚 ...

  9. 如何删除远端已经推送的Commit记录???(Git版本回退)

    如何删除远端已经推送的Commit记录???(Git版本回退) 简单描述 突然事件:刚刚,就在刚刚,发生误了操作. 操作描述:我把修改的文件保存错分支了,已经commit了.并且还push上去了.对, ...

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

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

随机推荐

  1. ERROR: nginx-1.22.1 installation failed.

    libraries. You can either do not enable the module or install the libraries.make: *** No rule to mak ...

  2. Factors 分解质因数

    package com.yourself.yours; import java.util.Scanner; /** ****************************************** ...

  3. OpenSSL 生成 RootCA (根证书)并自签署证书(支持 IP 地址)

    背景 某机房内部访问需要配置 HTTPS,网上找的一些证书教程都不是特别好,有些直接生成证书,没有根 CA 的证书导致信任不了 Ubuntu 机器,有些教程只有域名生成,没有 IP 生成,有些甚至报错 ...

  4. 使用卷积神经网络训练手写数字识别模型(CNN)

    https://www.cnblogs.com/zylyehuo/ 效果展示 目录结构 README.md # Basic MNIST Example pip install -r requireme ...

  5. sprintf函数内存越界

    最近在做项目的时候遇到sprintf函数内存越界的问题,现在分享给大家,希望对大家有用. 首先介绍了sprintf 这个函数. 函数原型:  int sprintf(char *str, const ...

  6. 文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

    五.用go语言,给定一个n结点的二叉树,写出一个 O(n)时间的非递归过程,将该树每个结点的关键字输出.要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改 ...

  7. P9481 [NOI2023] 贸易 题解

    题目链接 题目要求我们求出任意两点间最短路径之和,由于图比较特殊,除树边外只有祖先到其子树内的边,我们首先考虑最短路径有没有什么特殊性质. 注意到两点之间的最短路分为一下三种: 节点到其祖先的最短路: ...

  8. JUC并发编程学习笔记(十二)Stream流式计算

    Stream流式计算 什么是Stream流式计算 大数据:存储+计算 集合.MySql这些的本质都是存储东西的: 计算都应该交给流来操作! 一个案例说明:函数式接口.lambda表达式.链式编程.St ...

  9. Seaurl-分享一个云上网址收藏网站

    前言 最近网上发现一个强大的网址收藏网站,点击这里打开,分享给大家,希望大家会喜欢. 网址空间 "网址空间"是一个专业的在线平台,它允许用户分享他们在日常生活和工作中频繁访问的网站 ...

  10. [Flink] Flink(CDC/SQL)Job在启动时,报“ConnectException: Error reading MySQL variables: Access denied for user 'xxxx '@'xxxx' (using password: YES)”(1个空格引发的"乌龙")

    1 问题描述 1.1 基本信息 所属环境:CN-PT 问题时间:2023-11-21 所属程序: Flink Job(XXXPT_dimDeviceLogEventRi) 作业类型: Flink SQ ...