git - 如何通过创建补丁将文件夹恢复到特定提交

标签 git

这是文件夹“somefolder”的历史记录

$ git log somefolder

commit 89cd
More changes to somefolder

commit ef47a
Updating somefolder and other stuff

commit e095
Bugs fixed in somefolder

我想将 somefolder 还原为“修复了某些文件夹中的错误”提交。

由于第二次提交涉及某个文件夹之外的更改,我不想还原此提交。

我想最安全的方法是在提交 e095 和 89cd 之间创建一个仅适用于某个文件夹的差异/补丁,然后应用该补丁。我该怎么做?

最佳答案

您可以使用 git checkout将您的存储库更新到特定状态。

git checkout e095 -- somefolder

至于您关于生成差异的问题,那也可以。只需生成差异以从当前状态返回到 e095:

git diff 89cd..e095 -- somefolder

关于git - 如何通过创建补丁将文件夹恢复到特定提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119036/

相关文章:

git 网站; stash 特定 repo

git - 取消了一个git-clone,下载的文件在哪里?

git - 如何避免被锁定在您的 GIT 存储库/SSH 之外?

windows - 从 Mercurial 迁移后,Git 在 Windows 11 上无法正确识别带变音符号的文件

Gitignore 所有以句点开头的文件夹

git - 在 ubuntu 20.04 上安装 git 时发生错误

git - 如何在删除工作目录后删除 git 工作树分支?

公司代理背后的 Git 克隆

eclipse - EGit:无法推送,无法 pull

node.js - 使用 git 部署到 digitalocean 上的 dokku