[英]How to revert a folder to a particular commit by creating a patch
這是我的文件夾“somefolder”的歷史記錄
$ git log somefolder
commit 89cd
More changes to somefolder
commit ef47a
Updating somefolder and other stuff
commit e095
Bugs fixed in somefolder
我想將某個文件夾恢復為“在某個文件夾中修復的錯誤”提交。
由於第二次提交涉及某個文件夾之外的更改,因此我不想恢復此提交。
我想最安全的方法是在提交 e095 和 89cd 之間創建一個僅適用於某個文件夾的差異/補丁,然后應用該補丁。 我怎樣才能做到這一點?
您可以使用git checkout將您的存儲庫更新為特定的 state。
git checkout e095 -- somefolder
至於您關於生成差異的問題,那也可以。 只需將當前 state 的差異生成到 go 回e095
:
git diff 89cd..e095 -- somefolder
您可以使用git reset
重置索引,其中還包括刪除在最近提交中添加的文件( git checkout
不會這樣做):
git reset e095 -- somefolder
但是git reset
不會更新工作副本,並且--hard
選項不適用於文件夾。 那么然后使用git checkout
使工作副本與索引相同:
git checkout -- somefolder
然后如果您還想刪除添加的任何文件,您還需要執行以下操作:
git clean -fd somefolder
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.