簡體   English   中英

如何通過創建補丁將文件夾恢復為特定提交

[英]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.

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