Git是一个工具集,而不是一个解决方案,因此有多种解决方案。但是,一种相对简单的方法是从git revert -n
开始,它开始还原,但没有完成
:
git revert -n <commit-specifier>
这当然试图将对所有 all 文件的更改全部撤回。您只想撤消对一个文件的更改。但是现在git revert
进行了不提交的尝试,您只需要还原您不想修改的每个文件。获取此类文件的列表,然后使用git checkout
或git restore
(严格按照git status
的建议使用命令)使这些文件与当前提交匹配。现在git status
将只显示一个文件作为要提交的更改 ,您现在可以git commit
看到一个文件。
另一种相对简单的方法是使用:
git show <commit-specifier> -- <pathspec> | git apply -R
如果您希望Git在文件的基本版本上使用三向合并,则可以在-3
命令中添加git apply
。在这种情况下,将--full-index
添加到git show
命令选项可能会有所帮助。 (与使用Cherrypick -n
方法一样,您必须自己提交结果。)
,
您可以先还原它:
git revert <commit-specifier>
然后重置HEAD〜1:
git reset --soft HEAD~1
和git只添加您要还原的文件:
git add -- <revert_file>
现在您可以再次提交
git commit --amend
删除所有其他更改:
git checkout -- .
本文链接:https://www.f2er.com/2277504.html