網(wǎng)站首頁 編程語言 正文
引言
在開發(fā)中經(jīng)常會(huì)遇到在本地測(cè)試的代碼或者隱私信息,一不小心提交到了遠(yuǎn)程倉庫,即便立即刪除了再提交,但是上次的提交記錄在遠(yuǎn)程依舊可以查看。 特別是像賬號(hào)密碼、key文件這種,很可能造成隱私泄露。
分兩種情況:
一、刪除最后一次提交
這種情況比較簡(jiǎn)單,主要操作分兩步:
- 第一步:回滾上一次提交
git reset --hard HEAD^
- 第二步:強(qiáng)制提交本地代碼
git push origin master -f
由于本地reset之后本地庫落后于遠(yuǎn)程幾個(gè)版本,所以需要使用-f強(qiáng)制提交。
二、刪除指定commit提交(非最后一次提交)
假定: 現(xiàn)在我們要?jiǎng)h除commit--2這條提交記錄
圖例
- 第一步:查看提交日志,獲取要?jiǎng)h除記錄commit--2的前一次提交commit--1的提交ID
特別提示: rebase -i的ID一定是刪除記錄的前一次的提交ID
git reflog
展示如下內(nèi)容:
b08ec3f HEAD@{4}: commit: commit--3
39841d1 HEAD@{5}: commit: commit--2
35f96e1 HEAD@{6}: commit: commit--1
拿到對(duì)應(yīng)的提交ID為35f96e1
- 第二步:rebase操作
git rebase -i 35f96e1
- 執(zhí)行完這個(gè)命令后,就可以看到 35f96e1 后的所有 commit 記錄。如下圖
- 默認(rèn)是使用 vim 編輯器打開了commit log list。然后我們就可以針對(duì)我們不需要的某些 log 進(jìn)行刪除。
- 把原本的 pick 單詞修改為 drop 就表示該ID對(duì)應(yīng)的 commit log 我們需要?jiǎng)h除。
- vim保存退出。
- 第三步:解決沖突,強(qiáng)制推送更新到遠(yuǎn)程
git add . # 沖突時(shí)使用
git commit -m "new commit" # 沖突時(shí)使用
git rebase --continue # 沖突時(shí)使用
git push origin master -f
再查看遠(yuǎn)程的提交記錄,發(fā)現(xiàn)commit--2就沒有了。
原文鏈接:https://www.jianshu.com/p/18b5cbc3e702
相關(guān)推薦
- 2022-07-11 UVM中uvm_config_db在sequence中的使用
- 2023-02-14 Python利用Prim算法生成迷宮_python
- 2022-11-27 Git基礎(chǔ)學(xué)習(xí)之文件刪除操作命令詳解_相關(guān)技巧
- 2022-10-29 RHCSA 文件編輯 nano vi vim
- 2022-04-05 MAC中執(zhí)行.sh腳本,/bin/sh^M: bad interpreter:解決辦法
- 2024-01-27 什么是消息隊(duì)列
- 2022-08-22 Python中可以用三種方法判斷文件是否存在_python
- 2022-09-25 MyBatis實(shí)現(xiàn)多表查詢(一對(duì)一、一對(duì)多)的方式
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支