怎么使用Git远程删除某个历史提交记录
这篇文章主要介绍“怎么使用Git远程删除某个历史提交记录”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Git远程删除某个历史提交记录”文章能帮助大家解决问题。
引言
在开发中经常会遇到在本地测试的代码或者隐私信息,一不小心提交到了远程仓库,即便立即删除了再提交,但是上次的提交记录在远程依旧可以查看。 特别是像账号密码、key文件这种,很可能造成隐私泄露。
分两种情况:
一、删除最后一次提交
这种情况比较简单,主要操作分两步:
第一步:回滚上一次提交
git reset --hard HEAD^
第二步:强制提交本地代码
git push origin master -f
由于本地reset之后本地库落后于远程几个版本,所以需要使用-f强制提交。
二、删除指定commit提交(非最后一次提交)
假定: 现在我们要删除commit–2这条提交记录
图例
第一步:查看提交日志,获取要删除记录commit–2的前一次提交commit–1的提交ID
特别提示: rebase -i的ID一定是删除记录的前一次的提交ID
git reflog
展示如下内容:
b08ec3f HEAD@{4}: commit: commit--3
39841d1 HEAD@{5}: commit: commit--2
35f96e1 HEAD@{6}: commit: commit--1
拿到对应的提交ID为35f96e1
第二步:rebase操作
git rebase -i 35f96e1
执行完这个命令后,就可以看到 35f96e1 后的所有 commit 记录。如下图
默认是使用 vim 编辑器打开了commit log list。然后我们就可以针对我们不需要的某些 log 进行删除。
把原本的 pick 单词修改为 drop 就表示该ID对应的 commit log 我们需要删除。
vim保存退出。
第三步:解决冲突,强制推送更新到远程
git add . # 冲突时使用
git commit -m "new commit" # 冲突时使用
git rebase --continue # 冲突时使用
git push origin master -f
再查看远程的提交记录,发现commit–2就没有了。
关于“怎么使用Git远程删除某个历史提交记录”的内容就介绍到这里了,感谢大家的阅读。
怎么使用Git远程删除某个历史提交记录相关推荐
- git删除相关历史提交记录,相关文件保持当前状态
git删除相关历史提交记录,相关文件保持当前状态 引言 新年新气象,趁着现在新的一年开始项目的事情还不是非常繁忙的时候,多整点下酒菜.这不实战类型的博客记录又开始了!当然实战类型的博客 ...
- git删除所有历史提交记录,只留下最新的干净代码
git删除所有历史提交记录,只留下最新的干净代码 1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A ...
- SVN迁移至GIT,并附带历史提交记录
文章目录 SVN代码同步至GIT 背景 准备工作 操作步骤 SVN代码同步至GIT 背景 近年随着信息工程的多元化发展,GIT逐渐取代SVN成为主流的版本管理工具,部门的项目代码也决定迁移至git进行 ...
- GitHub/GitLab/Gitee中项目互拷贝后仍保留历史提交记录的方法
GitHub.GitLab.Gitee等在同一个网站中执行复制或拷贝一个已有项目到一个新项目比较简单,因为它们在每一个项目上都有一个Fork按钮,直接点击此Fork按钮即可,Fork后的新项目会保留原 ...
- 彻底删除git中的较大文件(包括历史提交记录)
场景 适用于从一个git项目中,将体积较大的资源彻底从git中删除,包括历史提交记录. 如果仅仅在目录中删除一个文件是不够的,只要在提交记录中有这个文件,那么 .git 中就会有这个文件的信息. 用 ...
- github 删除历史提交记录的可行方案
github 删除历史提交记录的可行方案 删除历史版本 亲自研究发现的可行方案 一.创建新分支,复制所有内容并提交 获取最新 : git pull origin master切换分支:git chec ...
- 对不同的项目设置不同的git提交用户名和清除贡献者信息和历史提交记录
对不同的项目设置不同的git提交用户名 在项目目录下的(存在.git文件夹,如果不存在.git文件夹说明没有初始化git仓库,此目录下打开cmd输入git init一下就好了,但是要注意这时此目录应该 ...
- 趣话题:git三部曲(二)-拆分历史提交记录reset
前言 git有一个非常关键的功能就是reset.当我们需要拆分一个历史提交记录的时候需要使用reset.估计很多小伙伴不明白,reset究竟做了什么,所以在这篇文章当中我们来详细聊聊. git res ...
- Android2.2查看svn历史提交记录
一开始时是没有显示历史提交记录的,方法很简单 VCS--Subversion--ShowHistory,之后在下面的Version control就会显示"History-项目名" ...
最新文章
- MR-CNN网络结构
- 点击按钮出现水波纹动画
- JButton 圆角_ProE、Creo在玩具轿车设计中的一个案例应用解析|轿车|玩具|圆角
- LeetCode 多线程 1114. 按序打印
- Unity3D对手机屏幕触摸的控制脚本
- R语言︱文本挖掘——词云wordcloud2包
- pod install 在1.0.0.beta.1 cocoapods版本显示错误
- 《必玩》!学习大师们的游戏设计经验,激发你的游戏创造力!
- 程矢Axure夜话:Axure手机原型视频教程之图形解锁
- 斐讯k2路由器刷固件一条龙——从小白到大神
- unknown source怎么解决?unknown source是什么意思【详解】
- Python定时爬虫脚本
- 用户需求变更和确认的注意事项
- Entertain Box multiset的应用
- Speedoffice(word)如何调整页眉位置
- 关于合著《区块链实战》的 3 组关键词 | ArcBlock 博客
- 【三十五】Python全栈之路--MySQL
- mysql 分区 分表 分库分表
- ABP微服务示例中ProductManagementHttpApiClient服务地址配置
- python爬取百度云资源分享吧_python爬取百度云盘资源
热门文章
- java计算机毕业设计旅游信息网站源程序+mysql+系统+lw文档+远程调试
- 关于道家与道教的总结
- 不狠狠逼一下自己,永远不知道自己有多么强大
- Java 中的 T,E,K,V, 别傻傻分不清楚!
- Unity3d LOD 使用以及 Bias精度设置
- 烟花易冷,一指繁华了无痕:伤感QQ空间日志
- OPEX推出新一代货到人仓库自动化技术——Infinity ASRS
- 如何成为一位Unity3D游戏开发者:对游戏开发抱有热情
- UVa-1583 生成元
- java visual linux,如何在 Linux 中安装 Visual Studio Code