[git diff] 對比檢查變更 | 提交前復審 | 版本回退

git diff

git diff 是 Git 版本控制系統中用于比較文件差異的核心命令,可以顯示工作目錄、暫存區(Index)和倉庫歷史之間的變化。

通過對比不同版本或狀態的文件內容,幫助開發者理解代碼變更。

比較工作目錄與暫存區

運行以下命令查看工作目錄中尚未暫存的修改(與最后一次 git add 相比的差異):

git diff

比較暫存區與最新提交

添加 --cached--staged 參數,顯示已暫存但未提交的變更(與最新提交 HEAD 的差異):

git diff --cached

比較工作目錄與最新提交

直接對比工作目錄和最新提交(跳過暫存區):

git diff HEAD

比較兩個歷史提交

通過提交哈希或分支名對比兩個歷史版本。以下命令比較 commitAcommitB 的差異:

git diff commitA commitB

比較分支差異

對比兩個分支(如 mainfeature)的代碼差異:

git diff main..feature

統計變更行數

添加 --stat 參數僅顯示變更統計(增刪行數)而非具體內容:

git diff --stat

忽略空格變化

使用 -w 參數忽略空格差異,聚焦實質性代碼變更:

git diff -w

輸出差異到文件

將差異結果重定向到文件(如 changes.diff),便于分享或存檔:

git diff > changes.diff

代碼示例解析差異

以下 Python 腳本模擬 git diff 的部分邏輯,對比兩個文本文件的差異:

import difflibdef compare_files(file1, file2):with open(file1, 'r') as f1, open(file2, 'r') as f2:diff = difflib.unified_diff(f1.readlines(),f2.readlines(),fromfile=file1,tofile=file2)print(''.join(diff))compare_files('old_version.py', 'new_version.py')

典型工作流程示例

  1. 修改文件后檢查變更
    在本地編輯代碼后,立即運行 git diff 確認修改內容是否符合預期。

  2. 提交前的復審
    執行 git diff --cached 確保暫存區的變更準備就緒

  3. 分支合并前檢查
    使用 git diff main..feature 預覽即將合并的分支差異,避免沖突。

  4. 版本回退驗證
    通過 git diff HEAD~1 HEAD 檢查最近一次提交的改動,確認是否需要回退。

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

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

相關文章

【數據可視化-85】海底撈門店數據分析與可視化:Python + pyecharts打造炫酷暗黑主題大屏

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

物聯網之小白調試網關設備

小伙伴們,你們好呀!我是老寇!跟我一起學習調試網關設備 相信搞過物聯網的朋友,對網關設備非常熟悉,本人以小白的視角,手把手教你調試網關設備! 工作中使用的是Ubuntu操作系統,因此&a…

Node.js特訓專欄-實戰進階:22. Docker容器化部署

?? 歡迎來到 Node.js 實戰專欄!在這里,每一行代碼都是解鎖高性能應用的鑰匙,讓我們一起開啟 Node.js 的奇妙開發之旅! Node.js 特訓專欄主頁 專欄內容規劃詳情 我將從Docker容器化部署的基礎概念入手,介紹Node.js應用容器化的步驟,包括創建Dockerfile、構建鏡像、運行…

eclipse嵌入式編譯速度慢

eclipse 嵌入式 編譯 速度慢 同一個項目,eclipse編譯速度越來越慢,一開始幾秒鐘編譯完,后面要10分鐘。只需要將以下兩個程序卸載重新安裝即可。

編譯Android版本可用的高版本iproute2

背景: Android自帶的iproute2 太老,很多指令格式不支持 直接基于Android源碼,替換源碼下iproute2 代碼編譯新版,報錯太多,于是改用Android NDK工具編譯 環境: android-ndk-r25c-linux.zip 下載鏈接&am…

JavaScript的fetch函數的用法

基本語法fetch函數用于發起網絡請求,返回一個Promise對象。基本語法如下:fetch(url, options).then(response > response.json()).then(data > console.log(data)).catch(error > console.error(Error:, error));GET請求發起一個簡單的GET請求&…

Json和XML文件相互轉化

目錄 一.XML轉Json文件 示例:將XML轉換為JSON 依賴準備 Java代碼示例 代碼詳細講解 二.Json轉XML文件 示例:將JSON轉換為XML 依賴準備 Java代碼示例 代碼詳細講解 關鍵代碼解析 將JSON轉換為XML 寫入文件 示例輸入與輸出 三.具有相同功能的…

Python科學計算與可視化領域工具TVTK、Mayavi、Mlab、Traits(附視頻教程)

概述 TVTK、Mayavi、Mlab 和 Traits 都是 Python 科學計算與可視化領域中緊密相關的工具,它們常被結合使用來處理和展示三維數據。視頻教程:https://pan.quark.cn/s/f73e875225ca 1. TVTK TVTK(Traits-based Visualization Toolkit&#xff0…

SQL INSERT INTO SELECT 詳解

SQL INSERT INTO SELECT 詳解 引言 SQL(Structured Query Language)是數據庫操作的基礎語言,廣泛用于各種關系型數據庫管理系統中。在SQL中,INSERT INTO SELECT 是一個強大的功能,它允許用戶從一個表中選取數據,并直接將這些數據插入到另一個表中。本文將詳細講解 SQL …

python速成學習路線

第一部分:核心基礎(語法與工具) 目標:掌握 Python 的基本語法規則、數據處理方式和開發工具 核心內容: 環境搭建 安裝Python 3.x版本(推薦3.10)配置開發工具(如PyCharm、VS Code或…

自然語言處理的實際應用

在這個信息爆炸的時代,我們每天都在與文字、語音打交道 —— 發送消息、查詢信息、使用智能助手…… 這些看似平常的互動背后,都離不開一項關鍵技術的支撐:自然語言處理(NLP)。作為人工智能的重要分支,NLP …

Docker實戰:為項目打造即開即用的寶塔LNMP環境

Docker實戰:為項目打造即開即用的寶塔LNMP環境背景一、準備基礎鏡像二、啟動配置容器(關鍵步驟)三、容器內環境配置(逐步執行)1. 基礎環境搭建2. 安裝Systemd(寶塔依賴)3. 安裝寶塔面板&#xf…

.net\c#web、小程序、安卓開發之基于asp.net家用汽車銷售管理系統的設計與實現

.net\c#web、小程序、安卓開發之基于asp.net家用汽車銷售管理系統的設計與實現

藥房智能盤庫系統:基于CV與時間序列預測的庫存革命

> 在醫療資源日益緊張的今天,**全國78%的藥房仍依賴人工盤庫**,平均每100家藥房每年因庫存問題損失超50萬元。當計算機視覺遇見時間序列預測,一場藥房庫存管理的智能化革命正在悄然發生。 --- ### 一、傳統藥房庫存的三大痛點與破局思路 #### 致命痛點分析 1. **人工…

【互動屏幕】解析雙屏聯動在數字展廳中的應用與價值

雙屏聯動 https://www.bmcyzs.com/ 作為現代展廳設計中的重要技術手段,通過兩塊或多塊屏幕的協同工作,實現了信息的動態展示與交互體驗的提升。在展廳環境中,雙屏聯動軟件能夠將觸摸屏與大屏幕無縫連接,使觀眾通過簡單的操作即可控…

clickhouse基礎概念及集群部署

一. 簡述: ClickHouse 是一款高性能列式存儲數據庫,專為海量數據的實時分析場景設計。它以極致的查詢速度、高效的存儲利用率和強大的并行處理能力著稱,廣泛應用于日志分析、用戶行為分析、業務監控等大數據分析領域。1. 核心特性&#xff1a…

低版本 IntelliJ IDEA 使用高版本 JDK 語言特性的問題

現實問題: 目前最新的 IntelliJ IDEA 已經不支持在 Win7 環境上安裝了,如果企業內開發環境仍然是 Win7,就會導致很多問題。 比如當前 IDEA 版本為 2023.1,最大支持 JDK17,如何正常使用 JDK21 的新特性呢?比…

3分鐘 Spring AI 實現對話功能

1.什么是spring AISpring AI 是 Spring 官方推出的一個基于 Spring 生態的 AI 應用開發框架,旨在簡化將人工智能(如大語言模型、生成式 AI)集成到 Java 應用中的過程。它提供了統一的 API 和工具,讓開發者能更輕松地調用 AI 模型2…

CMake筆記:配置(Configure)、生成(Generate)和構建(Build)

以下為AI生成的內容&#xff1a; 一、配置階段&#xff08;Configure&#xff09; 本質&#xff1a;解析項目邏輯&#xff0c;構建內存模型 觸發命令&#xff1a;cmake -S <源碼路徑> -B <構建路徑> 關鍵操作與輸出&#xff1a;操作類型典型案例輸出產物變量定義se…

直接編輯pdf文件教程

工具下載地址&#xff1a;https://pan.quark.cn/s/4befbe5f4a77 一、下載并安裝軟件二、打開軟件&#xff0c;并打開一個pdf文件三、編輯PDF文件&#xff0c;并保存四、關閉軟件&#xff0c;打開源文件查看效果。