如何还原部分提交? [复制]

Posted

技术标签:

【中文标题】如何还原部分提交? [复制]【英文标题】:How to revert part of a commit? [duplicate] 【发布时间】:2014-06-02 09:20:12 【问题描述】:

在我们的回购历史中有一个提交、推送等。我有 SHA,我想运行 git revert /one/folder/* THESHAID 的等效项,但 git revert 看起来它不能只更改特定文件夹。

有没有办法复制该功能?

【问题讨论】:

您可以手动编辑补丁,使其仅包含所需目录中的更改,然后恢复补丁(补丁 -R -p1 )并提交。 【参考方案1】:

这很奇怪,没有按钮也不足为奇,尤其是当蛮力方法如此简单时:

git revert that_commit           # do the whole revert
git reset --hard HEAD^           # in what turns out to have been a throwaway commit
git checkout HEAD@1 -- one/folder   # and just take what you want of the results

【讨论】:

我也刚刚投票决定将其作为 dup 结束,@vcsjones 的链接答案在概念上更简洁,但执行起来更笨拙,请自行选择。 我查看了另一个答案。这些命令的逻辑对我来说更有意义...

以上是关于如何还原部分提交? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

xtrabackup备份和还原

Git保持相同的提交但还原文件

关于在不同版本和平台之间进行还原或复制的常见问题

关于在不同版本和平台之间进行还原或复制的常见问题

git 还原某个文件到之前的版本

如何编辑以前的 git 提交? [复制]