git版本回退 | 遠程倉庫的回退 (附實戰Demo)

目錄

  • 前言
  • 1. 基本知識
  • 2. Demo
  • 3. 彩蛋

前言

🤟 找工作,來萬碼優才:👉 #小程序://萬碼優才/r6rqmzDaXpYkJZF

爬蟲神器,無代碼爬取,就來:bright.cn

本身暫存區有多個文件,但手快了,vscode一下子都提交了
(可我只想提交一個啊!)

為了防止走上我的老路,先帶著基本知識才能進行實操!!

1. 基本知識

補充下這幾個基本知識

🧾 一、git log:查看歷史提交記錄
🔹 作用:查看提交歷史,幫助你找到 commit 的 hash 值或了解項目提交演變過程

🔹 常見用法:(命令進入之后,按q進行退出)

默認會顯示詳細的提交信息(commit ID、作者、時間、提交信息等)

git log

截圖如下:

在這里插入圖片描述

🔹 常用簡化參數:

每個提交顯示成一行:commit_id message,非常適合快速瀏覽歷史

git log --oneline

截圖如下:

在這里插入圖片描述

圖形化顯示分支結構 + 簡潔日志(推薦查看分支合并結構)

git log --graph --oneline --all

截圖如下:

在這里插入圖片描述

🔁 二、git reset:回退提交 (這個知識點要著重理解)
git reset 用于改變當前分支的指針位置,可以把代碼狀態退回到某個歷史提交

🔹 三種模式:

模式保留工作區代碼保留暫存區(index)用途和風險
–soft? 保留? 保留回退提交,但保留已暫存的更改(適合重寫提交)
–mixed(默認)? 保留? 清除回退提交,并清除暫存區,保留工作目錄
–hard? 丟棄? 丟棄回退提交+清除代碼(危險!徹底刪除修改)

🔹 常見例子:
回退最近一次提交,代碼保持已暫存狀態

git reset --soft HEAD~1

回退提交,清除暫存狀態,代碼回到“未提交”狀態

git reset --mixed HEAD~1

回退提交,并丟棄所有代碼修改。(慎用!)

git reset --hard HEAD~1

回退到指定 commit

git reset --hard <commit_id>

🧭 三、git reflog:記錄 Git 所有 HEAD 移動記錄
🔹 作用:reflog 記錄了 所有的 HEAD 和分支變動,即使你已經 reset 或 hard 刪除了 commit,也可以找回

🔹 用法:

git reflog

輸出類似:

9d2b6b1 HEAD@{0}: reset: moving to HEAD~1
a8ef7c3 HEAD@{1}: commit: 修復 bug
1c5e3b9 HEAD@{2}: commit: 初始提交

如果誤刪了某次提交,可以使用 reflog 找到 commit ID,回退回來:

git reset --hard 9d2b6b1

2. Demo

如果已經push到倉庫了,需要回退并保留代碼到暫存區,具體如下:

git reset --soft HEAD~1  # 回退提交
git reset                # 把暫存區文件退到工作區

但是此時分支已經落后了,需要強制push一下才可!

在這里插入圖片描述

之后提交個別文件即可,但
可能會出現出現:error: failed to push ... (non-fast-forward)

? 如果你確認要覆蓋遠程提交:

git push origin 分支名 --force

截圖如下:

在這里插入圖片描述

3. 彩蛋

一開始 git reset --hard強制回退,會清除我的暫存區!

這種情況怎么還原:
在這里插入圖片描述

先通過git reflog

看到類似下面的內容:

a1b2c3d HEAD@{0}: reset: moving to 9a071d5d...
d4e5f6g HEAD@{1}: commit: 某某提交

這里,HEAD@{1} 就是你 reset 之前的位置

git reset --mixed HEAD@{1}

恢復 commit 狀態

恢復暫存區內容

不會自動提交

💡 --mixed 可以把 commit 里的內容還原到暫存區

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77405.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么事Nginx,及使用Nginx部署vue項目(非服務器Nginx壓縮包版)

什么是 Nginx? Nginx(發音為 “engine-x”)是一個高性能的 HTTP 和反向代理服務器,也是一個 IMAP/POP3/SMTP 代理服務器。它以其高性能、高并發處理能力和低資源消耗而聞名。以下是 Nginx 的主要特性和用途: 主要特性 高性能和高并發 Nginx 能夠處理大量并發連接,適合高…

第十六周藍橋杯2025網絡安全賽道

因為只會web&#xff0c;其他方向都沒碰過&#xff0c;所以只出了4道 做出來的&#xff1a; ezEvtx 找到一個被移動的文件&#xff0c;疑似被入侵 提交flag{confidential.docx}成功解出 flag{confidential.docx} Flowzip 過濾器搜索flag找到flag flag{c6db63e6-6459-4e75-…

高性能的開源網絡入侵檢測和防御引擎:Suricata介紹

一、Debian下使用Suricata 相較于Windows&#xff0c;Linux環境對Suricata的支持更加完善&#xff0c;操作也更為便捷。 1. 安裝 Suricata 在Debian系統上&#xff0c;你可以通過包管理器 apt 輕松安裝 Suricata。 更新軟件包列表: sudo apt update安裝 Suricata: sudo apt …

IP-address-space

導航 (返回頂部) 1. IPv4地址分配表 1.2 IPv4 專用地址注冊表1.3 各國IPv4地址分配列表 2. IPv6地址分配表 2.1 IANA IPv6 專用地址注冊表2.2 IPv6 多播地址分配 1. IPv4地址分配表1.2 IPv4 專用地址注冊表1.3 各國IPv4地址分配列表 2. IPv6地址分配表2.1 IANA IPv6 專用地址…

Ubuntu使用war包部署Jenkins并通過systemcl管理

目錄 一、當前系統環境 二、安裝Java 二、安裝Jenkins 三、使用systemctl管理 一、當前系統環境 操作系統&#xff1a;ubuntu 24.04 Jenkins版本&#xff1a;2.506 格式&#xff1a;war JDK版本&#xff1a;OpenJDK_17 二、安裝Java 1.下載jdk安裝包 # wget下載 wget …

牛客 verilog入門 VIP

1、輸出1 答案&#xff1a; timescale 1ns/1nsmodule top_module(output wire one );assign one 1b1; endmodule 2、wire連線 答案&#xff1a; timescale 1ns/1nsmodule wire0(input wire in0,output wire out1 );assign out1 in0; endmodule 3、多wire連線 timescale 1…

簡易版2D我的世界C++程序(有點BUG,但是可以玩!!!)

1、按空格鍵來切換模式&#xff08;挖掘模式和放置模式&#xff09;&#xff0c;一律用鼠標右鍵來操作&#xff01;&#xff01;&#xff01; 2、按數字1和2鍵來切換放置的方塊&#xff08;1是草&#xff0c;2是木&#xff09;&#xff0c;樹葉不能放置&#xff01;&#xff01…

ubuntu使用dify源碼安裝部署教程+避坑指南

很多人,包括我在最初使用dify的時候都習慣使用docker來部署安裝環境,但在二次開發使用過程中,我們可能希望使用源碼來安裝,那么這篇文章我將給大家分享如何在ubuntu系統下使用源碼安裝,并提供大家遇到的疑難雜癥如下: dify安裝使用過程中報錯:/console/api/workspaces/…

java知識體系結構導航

很全&#xff1a;java知識體系結構 個人筆記鏈接 開發工具IDEA IDEA 插件推薦清單 IDEA快捷鍵大全 Java基礎難點 基礎知識_java動態代理 基礎知識_java反射機制 基礎知識-java流steam 基礎知識-java集合collection Spring 01.Spring 框架的演化&#xff1a;從 XML 配置到…

RabbitMQ 的專業術語

術語定義示例/說明生產者&#xff08;Producer&#xff09;發送消息到 RabbitMQ 的客戶端應用程序。日志系統將錯誤信息發送到 RabbitMQ。消費者&#xff08;Consumer&#xff09;從 RabbitMQ 隊列中接收并處理消息的客戶端應用程序。一個訂單處理服務從隊列中讀取消息并更新數…

mac安裝vm虛擬機安裝包

因為mac安裝虛擬機時&#xff0c;發現下載過程變得不太一樣&#xff0c;會比較麻煩。所以決定發一下我已經下載的安裝包&#xff0c;個人用戶使用免費&#xff0c;商業版請自行去官網下載&#xff01; 百度網盤下載鏈接 百度網盤 請輸入提取碼 提取碼:d4rc

LLama Factory從入門到放棄

目錄 簡介 安裝 LLama Factory界面介紹 數據格式要求 微調訓練 今天在這里介紹一種常用的大模型微調框架——LLama Factory。 簡介 LLama Factory 是一個高效的界面化大語言模型微調工具庫&#xff0c;支持多種參數高效微調技術&#xff0c;提供簡潔接口和豐富示例&#…

如何借助全球動態IP實現多平臺賬號的批量注冊?

無論是社交網絡、在線購物平臺還是專業應用軟件&#xff0c;賬號的創建和使用都是必不可少的。然而&#xff0c;在面對不同平臺各自的注冊限制和策略時&#xff0c;如何高效、安全且合法地進行賬號批量注冊成為了亟待解決的問題。本文將探討全球動態IP在這一過程中的作用及其如…

django admin 添加自定義頁面

在Django中&#xff0c;你可以通過多種方式向Django Admin添加自定義頁面。以下是一些常見的方法&#xff1a; 方法1&#xff1a;使用ModelAdmin的get_urls()方法 如果你只是想添加一個簡單的頁面來展示信息&#xff0c;你可以在你的ModelAdmin類中重寫get_urls()方法。 from…

Docker容器持久化

引言 Docker 容器作為一種輕量級、可移植的虛擬化技術&#xff0c;廣泛應用于開發、測試和生產環境中。然而&#xff0c;容器天生是短暫的&#xff0c;意味著它們在生命周期結束后會被銷毀&#xff0c;而其中的數據也會隨之丟失。為了確保容器中的數據能夠持久化&#xff0c;我…

ShaderToy學習筆記 02.圓

1. 畫圓 1.1. 圓的方程 圓的方程是&#xff1a;(x^2 y^2 r^2)&#xff0c;其中(r)是圓的半徑。 我們可以使用 desmos 來驗證一下。 輸入 x^2 y^2 -10&#xff0c;即可得到圓。 類似下圖 1.2. 畫圓的方式 畫圓&#xff1a;使用圓的方程&#xff0c;判斷每個像素點是否在圓…

一文詳解卷積神經網絡中的卷積層和池化層原理 !!

文章目錄 前言 一、卷積核大小&#xff08;Kernel Size&#xff09; 1. 卷積核大小的作用 2. 常見的卷積核大小 3. 選擇卷積核大小的原則 二、步長&#xff08;Stride&#xff09; 1. Stride的作用 三、填充&#xff08;Padding&#xff09; 1. 填充的作用 四、通道數&#xff…

云+AI雙輪驅動,亞馬遜云科技加速中國企業出海新浪潮

導讀&#xff1a;全球化就是本地化 作者 | 小葳 圖片來源 | 攝圖 近年來&#xff0c;中國企業出海步伐不斷加快&#xff0c;“不出海&#xff0c;就出局”成為很多企業的共識。 據沙利文統計&#xff0c;2024年上半年&#xff0c;超過2000家中國上市企業布局海外市場&#xff…

C語言HashTable基本理解

文章目錄 一、哈希表概念1. 哈希表的基本概念2. 哈希表的核心組件2.1 哈希函數2.2 沖突處理&#xff08;哈希碰撞&#xff09; 3.哈希表的三種結構(1) 數組作為哈希表示例&#xff1a; 2. Set&#xff08;集合&#xff09;示例&#xff1a;查找數組中的重復元素1. Set 基礎概念…

【緩存與數據庫結合最終方案】偽從技術

實現偽從技術&#xff1a;基于Binlog的Following表變更監聽與緩存更新 技術方案概述 要實現一個專門消費者服務作為Following表的偽從&#xff0c;訂閱binlog并在數據變更時更新緩存&#xff0c;可以采用以下技術方案&#xff1a; 主要組件 MySQL Binlog監聽&#xff1a;使…