【发布时间】:2021-12-24 09:04:06
【问题描述】:
我有一个 3 个月大的提交,假设提交 A 涉及 3 个文件 在过去的 3 个月中,提交了更多的提交,其中一些在提交 A 的更改下方添加了新代码
我想删除(不恢复)3 个文件中的 1 个中提交 A 的更改。
删除为空行而不是代码
我试过了
git show file_path | git apply -R -3
这会删除额外的代码(这超出了提交 A 的范围:如果有兴趣,请在下面详细说明)
我能想到的一种方法是在文件上使用 git blame,只要哈希匹配,删除行 但似乎是非常迭代的过程和耗时。
任何指针都会有所帮助..
提前致谢
从文件中删除的超出提交 A 范围的额外代码:
- 在文件末尾添加了提交 A
- 新提交在文件末尾的提交 A 之后添加了更多代码(低于提交 A 的更改)
- 现在,当我们反转提交 A 中的更改时(使用 git apply -R -3),它会从提交 A 的开始到文件末尾进行清理,因为对于 git,代码最初是添加到文件末尾的
【问题讨论】:
-
请提供一个minimal reproducible example,我们可以运行它来展示您不想要的 Git 所做的事情;例如,添加你做想要的。
标签: git github git-reset git-revert git-apply