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. 【SqlServer】存储过程:批量查询数据库下表的元数据

    一.查询单张表 1.1 根据表名查询表结构 --快速查看表结构(比较全面的) DECLARE @tableName NVARCHAR(MAX); SET @tableName = N'YMUS'; - ...

  2. 后缀数组 (SA) 学习笔记

    写得很草率的一篇东西. 后缀排序 #include<bits/stdc++.h> #define il inline using namespace std; il int read() ...

  3. Mysql面试大全

    说说MySQL索引的底层数据结构 MySQL索引的底层数据结构是B+树数据结构 详细介绍一下B+树的数据结构是什么样子的 B+树有三个特性 B+树是一个平衡多叉树,与平衡二叉树的每一个节点下面最多有两 ...

  4. URL, URI 和 URN 之间的区别

    英文原文:What's the difference between a URI and a URL?  URI 标识一个事物 , URL 定位一个事物:然而,位置同样可以标识一个事物,所以,每个 U ...

  5. Java初始化顺序及使用Spring情况下初始化

    Java初始化顺序 1  无继承情况下的Java初始化顺序: class Sample {       Sample(String s)       {             System.out. ...

  6. 泛微OA与ERP集成的关键要点

    泛微OA办公系统与ERP系统的集成是为了实现企业内部各个系统之间的数据共享和协同工作,提高工作效率和管理水平.下面将详细介绍泛微OA办公系统如何与ERP系统集成以及轻易云数据集成平台在该过程中发挥的重 ...

  7. 吉客云与用友U8的系统数据集成对接方案

    吉客云与用友U8之间的系统数据集成方案.吉客云作为一款电商ERP产品,旨在为企业的数字化升级提供全方位的支持.用友U8是一个经过多年发展的信息化管理系统,见证了企业信息化从简单到精细.从局部到全面的转 ...

  8. [AGC024F] Simple Subsequence Problem

    Problem Statement You are given a set $S$ of strings consisting of 0 and 1, and an integer $K$. Find ...

  9. 基于.NET Core + Quartz.NET+ Vue + IView开箱即用的定时任务UI

    前言 定时任务调度应该是平时业务开发中比较常见的需求,比如说微信文章定时发布.定时更新某一个业务状态.定时删除一些冗余数据等等.今天给大家推荐一个基于.NET Core + Quartz.NET + ...

  10. C++学习笔记二:变量与数据类型(整型)

    1.int(整型数据): 1.1 进制的表示:十进制,八进制,16进制,二进制 int number1 = 15; // Decimal int number2 = 017; // Octal int ...