【git學習】第2課:查看歷史與版本回退

好的,我們進入 第2課:版本查看與回退機制,本課你將學會如何查看提交歷史、對比更改,并掌握多種回退版本的方法。


📘 第2課:查看歷史與版本回退


🎯 本課目標

  • 熟練查看 Git 提交記錄

  • 掌握差異查看、版本切換與回退

  • 理解 checkoutresetrevert 的區別與用法


🗂 一、查看提交歷史

1. 查看完整日志

git log

常見快捷選項:

git log --oneline        # 每條提交一行,簡潔模式  
git log --graph          # 圖形化顯示分支合并結構  
git log --stat           # 顯示每次提交修改了哪些文件和行數

2. 查看指定文件的修改歷史

git log 文件名

🔍 二、查看文件修改內容(差異對比)

1. 查看尚未提交的變動

git diff

顯示工作區 vs 暫存區 的差異(未 add 的內容)

2. 查看已 add 但未 commit 的差異

git diff --cached

3. 比較歷史版本之間的差異

git diff 哈希1 哈希2

示例:

git diff HEAD~1 HEAD

🕹 三、版本回退的三種方式

Git 提供了三種常用的回退機制:

方法命令場景是否修改歷史
1. checkout切換到指定版本臨時查看舊版本、不修改歷史
2. reset回退到舊版本(徹底更改歷史)撤銷提交、徹底還原是(危險)
3. revert撤銷某次提交保留歷史,生成一條新提交否(安全)

🧪 示例操作

1. 查看歷史提交哈希值

git log --oneline

輸出示例:

e9b1fc0 添加登錄功能
5d7c1f2 初始化項目

2. 使用 git checkout 查看舊版本(只讀)

git checkout e9b1fc0

🔸 注意:此時進入了“游離 HEAD 狀態”,不要直接在上面開發。

返回最新版本:

git checkout main

3. 使用 git reset 回退版本(危險操作)

回退到上一個版本(保留改動但不提交):
git reset --soft HEAD~1
回退到上一個版本(不保留改動):
git reset --hard HEAD~1

🚨慎用 --hard,會刪除工作區改動!


4. 使用 git revert 撤銷某次提交(推薦)

git revert e9b1fc0

🔸 會創建一條“反向操作”的新提交,安全可追蹤。


🔧 誤刪文件怎么找回?

如果誤刪了還沒提交的文件,可用如下命令恢復:

git checkout -- 被刪文件路徑

📌 本課命令小結

命令作用
git log查看提交歷史
git diff查看差異
git checkout <版本號>切換歷史版本
git reset --hard HEAD~1強制回退版本
git revert <版本號>創建反操作的提交

? 練習任務

  1. 提交多個更改,練習使用 git loggit diff

  2. resetrevert 分別回退一次提交

  3. 練習恢復誤刪文件


如果你準備好了,我們繼續進入 第3課:分支管理基礎與合并操作
請回復“繼續第3課”進入下一節內容。

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

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

相關文章

攝像頭AI智能識別工程車技術及應用前景展望

攝像頭AI自動識別工程車是智能交通系統和工程安全管理領域的一項重要技術。它通過圖像識別技術和深度學習算法&#xff0c;實現對工程車的自動檢測和識別&#xff0c;從而提高了施工現場的安全性和管理效率。以下是對該技術及其應用的詳細介紹&#xff1a;一、技術實現數據收集…

Windows服務器安全配置:組策略與權限管理最佳實踐

Windows服務器是企業常用的服務器操作系統&#xff0c;但其開放性和復雜性也使其成為攻擊者的目標。通過正確配置組策略和權限管理&#xff0c;可以有效提高安全性&#xff0c;防止未經授權的訪問和惡意軟件的入侵。以下是詳細的安全配置指南和最佳實踐。 1. 為什么組策略和權限…

Windows部署Rocketmq問題匯總

最近研究了下Rocketmq消息中間件&#xff0c;在Win10上部署時遇到一些問題&#xff0c;做個記錄 部署的是Rocketmq 4.92版本&#xff0c;對應使用的控制臺用的1.0版本 下載地址 1.優化內存占用 修改 runserver.cmd 修改前 set "JAVA_OPT%JAVA_OPT% -server -Xms2g -Xmx…

動手學深度學習-學習筆記(總)

文章目錄 1、概述2、內容2.1、python2.2、動手學深度學習2.2.1、課前準備2.2.2、預備知識2.2.3、線性神經網絡 2.3、深度學習重要概念 3、常見問題3.1、安裝 d2l 失敗3.2、調用 mean() 方法報錯3.3、markdown 常見公式3.4、執行動手學深度學習中的代碼&#xff0c;無法顯示圖片…

springboot3.5 MySQL 自動裝配解析

一、配置環境 1. 配置pom.xml <dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency> 2、自動配置圖解 二、相關代碼解析 1、自動配置入口&#xff1a…

使用 Conda 工具鏈創建 Poetry 本地虛擬環境全記錄——基于《Python 多版本與開發環境治理架構設計》

Python 多版本治理理念&#xff08;Windows 平臺 零基礎友好&#xff09;-CSDN博客 Python 多版本與開發環境治理架構設計-CSDN博客 使用命令行創建項目本地的 Poetry 虛擬環境實戰演示 —— 基于《Python 多版本與開發環境治理架構設計》的最佳實踐-CSDN博客 一、Python311 環…

北小菜, python , onvif

第一節&#xff1a; 首先是環境的搭建。 環境的搭建。 roottopeet:/home/topeet/source_code/wang_onvif_python# python -m venv venv Command python not found, did you mean:command python3 from deb python3command python from deb python-is-python3 roottopeet:/ho…

TinyWebserver學習(9)-HTTP

一、相關知識 1、有限狀態機&#xff1a; 有限狀態機&#xff08;Finite State Machine, FSM&#xff09;是一種用于描述對象在其生命周期內可能經歷的不同狀態及其狀態轉換規則的模型。它廣泛應用于游戲開發、網絡協議、詞法解析、UI邏輯控制等領域。以下是C中有限狀態機的簡…

2025最新軟件測試面試八股文

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師…

React 強大的表單驗證庫formik之集成Yup、React Hook Form庫

簡介 Formik 是為 React 開發的開源表單庫&#xff0c;提供狀態管理、驗證和提交處理功能&#xff0c;可簡化復雜表單的開發。 核心優勢 ?- 狀態管理 ?&#xff1a;自動跟蹤輸入值、驗證狀態和提交進度&#xff0c;無需手動編寫狀態邏輯。 ? ?- 驗證功能 ?&#xff1a;…

破解風電運維“百模大戰”困局,機械版ChatGPT誕生?

面對風機87%的非計劃停機&#xff0c;30多個專用模型為何束手無策&#xff1f;一套通用大模型如何實現軸承、齒輪、轉子“一站式”健康管理&#xff1f;一、行業痛點&#xff1a;風機運維深陷“碎片化泥潭”1.1 87%停機故障由多部件引發齒輪斷裂、軸承磨損、電機短路……風電故…

Spring Bean 控制銷毀順序的方法總結

控制Spring Bean銷毀順序的方法 在Spring框架中&#xff0c;有幾種方法可以控制Bean的銷毀順序。以下是主要的幾種方式及其示例代碼&#xff1a; 1. 實現DisposableBean接口 實現DisposableBean接口并重寫destroy()方法&#xff0c;Spring會按照依賴關系的相反順序調用這些方…

Gemini CLI MCP 教程:設置、命令與實際使用

如果你想要為任何 MCP 服務器設置 Gemini CLI,這個快速教程將為你提供指導。 Gemini CLI 結合 MCP(模型上下文協議)服務器,改變了你通過自然語言命令進行編碼的方式。 你可以要求 Gemini 分析你的代碼庫、管理文件、查詢數據庫,或通過對話提示與 API 交互。 MCP 服務器連…

LangChain 構建向量數據庫和檢索器

LangChain 構建向量數據庫和檢索器實戰 隨著大語言模型&#xff08;LLM&#xff09;在各類 AI 應用中不斷普及&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff0c;檢索增強生成&#xff09;逐漸成為提升回答準確率與上下文關聯性的重要技術路徑。 一、什…

基于 LangChain 實現通義千問 + Tavily 搜索 Agent 的簡單實踐

文章目錄 一、相關背景1.1 LangChain 簡介1.2 通義千問&#xff08;Tongyi Qianwen&#xff09;1.3 Tavily 實時搜索引擎1.4 架構總覽 二、環境配置設置 API 密鑰 三、 Tavily 搜索四、智能 Agent 示例&#xff1a;自動判斷是否調用 Tavily4.1 初始化 Agent4.2 提問兩個問題&am…

SegGPT: 在上下文中分割一切

摘要 我們提出了 SegGPT&#xff0c;一個在上下文中執行“分割一切”的通用模型。我們將各種分割任務統一為一個通用的上下文學習框架&#xff0c;通過將不同類型的分割數據轉換為相同的圖像格式來兼容這些差異。SegGPT 的訓練被建模為一個帶有隨機顏色映射的上下文著色問題。…

【網絡】Linux 內核優化實戰 - net.core.busy_read

目錄 核心功能工作原理與優勢配置方式1. 臨時配置&#xff08;重啟失效&#xff09;2. 永久配置&#xff08;重啟生效&#xff09; 與 net.core.busy_poll 的協同作用適用場景與注意事項適用場景&#xff1a;注意事項&#xff1a; 總結 net.core.busy_read 是 Linux 內核中與網…

alpine安裝及配置nodejs開發測試環境

在Alpine Linux上安裝和使用Node.js&#xff0c;打造開發和測試的環境。 apk倉庫打開社區的源。 先在命令行中使用命令apk search nodejs npm yarn對倉庫源進行搜索&#xff0c;&#xff0c;看看nodejs、yarn、npm的版本情況。 localhost:~# apk search nodejs npm yarn nod…

Apache Commons Pool中的GenericObjectPool詳解

GenericObjectPool 是 Apache Commons Pool 庫中的核心類&#xff0c;用于實現對象的池化管理&#xff0c;適用于數據庫連接、HTTP 客戶端、線程等昂貴資源的復用。以下從核心概念、工作原理、參數配置、使用場景及最佳實踐等方面詳細解析&#xff1a; ?? 一、核心概念與組成…

攻防世界CTF題目解析系列————(1)

題目來源:攻防世界wife_wife 打開題目之后&#xff0c;發現登錄界面&#xff0c;然后嘗試弱口令&#xff0c;sql二次注入&#xff0c;xss發現都沒有&#xff0c;然后看見下面go register&#xff08;去注冊&#xff09;按鈕 成功注冊&#xff08;username和password隨便搞&…