簡體   English   中英

如何在 git 中恢復對特定類型文件的已提交更改

[英]How to revert committed changes to files of a certain type in git

我想恢復舊的 git 已知提交(不是最后一個,已經推送到上游),但只想影響某些文件類型,例如*.java 其他更改,例如對我想保留的*.xml類型文件的更改。

*.java文件的任何下游更改也應撤消。

# first revert your commit but without committing
git revert -n <commitToRevert>

# then restore your .xml files
git checkout <commitToRevert> -- *.xml

# and finally commit
git commit

不提交就恢復

如果您知道要還原的commitid ,則可以從父提交 ( commitid^ ) 中檢出已知文件。 在您的情況下,文件是*.java

# checkout *.java files recursively from a parent commit of a known "commitid"
git checkout commitid^ -- `git ls-tree commitid -r --name-only | grep ".java"`

# Commit
git commit

父提交由提交哈希后的脫字符 ( ^ ) 符號表示。

另見類似答案 另請參閱按通配符結帳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM