Git?Revert特定文件/路徑的實(shí)現(xiàn)方法
更新時(shí)間:2025年12月01日 08:52:31 作者:兔老大RabbitMQ
文章介紹了四種方法來恢復(fù)Git倉(cāng)庫(kù)中單個(gè)文件到指定提交,包括使用`git?checkout`、`git?restore`、手動(dòng)Revert和使用IDEA圖形化操作
git revert 命令本身不支持直接指定文件或路徑,但有幾種方法可以實(shí)現(xiàn)你的需求。
方法1:使用git checkout(推薦 - 最簡(jiǎn)單)
恢復(fù)單個(gè)文件到指定提交
# 將某個(gè)文件恢復(fù)到 master 分支的狀態(tài) git checkout master -- src/main/java/PriceFilter.java # 將某個(gè)文件恢復(fù)到指定提交的狀態(tài) git checkout 8b68b626 -- src/main/java/PriceFilter.java # 恢復(fù)后需要提交 git add src/main/java/PriceFilter.java git commit -m "revert: 恢復(fù) PriceFilter.java 到 master 狀態(tài)" # 恢復(fù)整個(gè)目錄到 master 狀態(tài) git checkout master -- src/main/java/ # 恢復(fù)多個(gè)文件 git checkout master -- file1.java file2.java # 恢復(fù)當(dāng)前目錄下所有 .java 文件 git checkout master -- *.java
方法2:使用git restore(Git 2.23+推薦)
# 將文件恢復(fù)到 master 分支狀態(tài) git restore --source=master src/main/java/PriceFilter.java # 將文件恢復(fù)到指定提交狀態(tài) git restore --source=8b68b626 src/main/java/PriceFilter.java # 恢復(fù)整個(gè)目錄 git restore --source=master src/main/java/ # 提交更改 git add . git commit -m "revert: 恢復(fù)指定文件到 master 狀態(tài)" # 恢復(fù)到工作區(qū)(默認(rèn)) git restore --source=master --worktree src/main/java/PriceFilter.java # 恢復(fù)到暫存區(qū) git restore --source=master --staged src/main/java/PriceFilter.java # 同時(shí)恢復(fù)到工作區(qū)和暫存區(qū) git restore --source=master --worktree --staged src/main/java/PriceFilter.java
方法3:手動(dòng) Revert + 選擇性恢復(fù)
# 1. 先正常 revert 整個(gè)提交 git revert cc53969d --no-commit # 2. 查看被 revert 的文件 git status # 3. 恢復(fù)不需要 revert 的文件 git checkout HEAD -- 不需要revert的文件.java # 4. 只保留需要 revert 的文件更改 git add 需要revert的文件.java # 5. 提交 git commit -m "revert: 僅恢復(fù)部分文件到指定狀態(tài)"
方法4:使用 IDEA 圖形化操作
單個(gè)文件恢復(fù)
- 在項(xiàng)目樹中右鍵點(diǎn)擊目標(biāo)文件
- Git → Show History
- 在歷史記錄中找到目標(biāo)提交(如 master 的最新提交)
- 右鍵點(diǎn)擊該提交 → Get Revision
- 確認(rèn)恢復(fù)該文件到選定版本
目錄恢復(fù)
- 右鍵點(diǎn)擊目標(biāo)目錄
- Git → Repository → Reset
- 選擇目標(biāo)提交
- 選擇 Mixed 模式
- 在彈出的文件列表中只選擇需要的文件
- 點(diǎn)擊 Reset
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
OpenClaw學(xué)習(xí)筆記:研究官網(wǎng)文檔后整理的架構(gòu)詳解
近期openclaw如火如荼,作為當(dāng)下AI領(lǐng)域的C位,有必要對(duì)其進(jìn)行了解,前期雖已部署試水,但對(duì)其原理不甚了解,查看官網(wǎng)文檔又發(fā)現(xiàn)大量?jī)?nèi)容看不懂,感覺是官網(wǎng)的知識(shí)組織方式不夠友好,這里結(jié)合官網(wǎng)文檔和AI問答,整理出其架構(gòu),以便快速理解2026-03-03
手機(jī)中點(diǎn)擊網(wǎng)頁(yè)鏈接實(shí)現(xiàn)撥號(hào)或保存電話功能實(shí)現(xiàn)代碼
這篇文章主要介紹了手機(jī)中點(diǎn)擊網(wǎng)頁(yè)鏈接實(shí)現(xiàn)撥號(hào)或保存電話功能實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04
詳解phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布
小皮面板,是由phpStudy官方團(tuán)隊(duì)針對(duì)Linux服務(wù)器開發(fā)推出的一款服務(wù)器環(huán)境搭建以及管理工具。這篇文章主要介紹了phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布,需要的朋友可以參考下2019-10-10
在 WordPress 的頁(yè)眉(header)和頁(yè)腳(footer)添加代碼方法
這篇文章主要介紹了在 WordPress 的頁(yè)眉(header)和頁(yè)腳(footer)添加代碼方法2021-09-09
Git配置SSH密鑰與私鑰的教程(跨平臺(tái)完整指南)
在使用 Git 進(jìn)行版本控制時(shí),SSH 是一種安全、高效的認(rèn)證方式,本文將詳細(xì)介紹如何生成 SSH 密鑰對(duì),并將其配置到 Git 和 GitHub(或其他平臺(tái))中,有需要的小伙伴可以了解下2025-06-06

