Git比對檔案之間的差異
Git功能眾多,其中一個重要功能是可以比對檔案之間的差異。
舉一個常見的例子,如果程式碼被惡意掛碼,如果被掛碼檔案較大,想找到掛碼的地方可能要費一點周折,利用Git的比對功能,則可以非常輕鬆的找出檔案被掛碼的位置。git diff命令可實現我們的需求。
一.比較暫存區與工作區之間的差異:
暫存區兩個檔案的內容如下:
[HTML] 純文字檢視 複製程式碼螞蟻部落一
以上是readme.txt檔案內容。
[HTML] 純文字檢視 複製程式碼antzone
以上是antzone.txt檔案內容。
現在工作區對這兩個檔案分別增加了一行,比對程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git diff
程式碼執行效果截圖如下:
預設狀態下,就是比較暫存區與工作區之間的差別。
關於比對的格式可以參閱git diff 輸出格式詳解一章節。比對指定檔案之間的差異,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git diff readme.txt
上面程式碼僅僅比對暫存區和工作區中readme.txt檔案的差異,程式碼執行效果截圖如下:
二.比對指定commit與工作區的檔案:
比對分支檔案與工作區檔案的差異,其實與比對commit提交中的檔案與工作區檔案差異是一回事,因為分支就是指向某個commit提交的。首先看一下當前提交歷史記錄,程式碼如下:
[Shell] 純文字檢視 複製程式碼$ git log --oneline
程式碼執行效果截圖如下:
下面檢視一下最後一次提交與工作區檔案之間的差異,程式碼例項如下:
[Shell] 純文字檢視 複製程式碼$ git diff f2303a6 readme.txt
以上程式碼可以比對f2303a6提交中指定檔案與工作區對應檔案的差異。
程式碼執行效果截圖如下:
三.比對暫存區與指定提交差異:
前面都是與工作區進行比對,下面介紹一下指定commit提交與暫存區的比對。
程式碼例項如下:
[Shell] 純文字檢視 複製程式碼$ git diff --cached readme.txt
預設是比對暫存區和最新提交的指定檔案。
程式碼執行效果截圖如下:
當然我們可以比對指定提交與暫存區檔案差異,程式碼例項如下:
[Shell] 純文字檢視 複製程式碼$ git diff --cached f2303a6 readme.txt
以上程式碼可以比對f2303a6提交下readme.txt檔案與暫存區下對應檔案的差異。
相關文章
- [Windows批處理]比對Git兩個分支之間的差異,把有改動的檔案複製到指定目錄WindowsGit
- git 本地對比2次commit直接的差異GitMIT
- awk比較檔案內容的差異
- list對比差異
- IDEA如何對比不同分支某個檔案的差異Idea
- grep -vFf 比較2個檔案差異
- Linux下檔案差異比較工具Linux
- 系統之間差異
- 對於 JavaScript 中迴圈之間的技術差異概述JavaScript
- Bootstrap和Tailwind CSS之間的差異?bootAICSS
- 使用Visual Studio進行檔案差異比較
- 在Linux中,如何比較兩個檔案差異?Linux
- 文字差異對比工具 go-diffGo
- openGauss資料與PostgreSQL的差異對比SQL
- 生動講解使用不同方式操作File檔案的方法之間的差異
- 工作流和BPM之間的差異
- 程式、會話、連線之間的差異會話
- 【Python】Python 對比 C語言的差異PythonC語言
- 比對兩個資料庫的差異:Java篇資料庫Java
- js中split,splice,slice方法之間的差異。JS
- Mac 上超好用的程式碼對比工具 beyond compare,對比json差異MacJSON
- Unique Index和Normal Index差異經典對比IndexORM
- vue-codemirror 實現文字差異比對Vue
- SQL Server 2017 各版本之間的差異SQLServer
- For Update操作分析——不同Oracle版本之間的差異研究Oracle
- Git差異並列顯示Git
- 差異檔案(diff)和補丁檔案(patch)簡介
- 前端與後端開發中技術差異的全面對比前端後端
- 比對檔案sam檔案的解讀
- smali檔案對比java檔案Java
- 網路虛擬化、NFV和SDN之間的差異
- grep檔案比對
- 軟體測試:SVN與Git的差異Git
- 線上json差異比較工具--遞迴比較兩個json的節點和值的差異,並支援差異數預覽和逐個檢視差異JSON遞迴
- 使用多重 SOA 來消除企業系統之間的差異
- git專案之間的commit同步GitMIT
- 面試官:主說 Git Rebase 和 Git Merge 差異面試Git
- 不吹不黑比對下React與Vue的差異與優劣ReactVue