0

我有一个 3 个月大的提交,假设提交 A 涉及 3 个文件在过去的 3 个月中,有更多的提交进入,其中一些在提交 A 的更改下方添加了新代码

我想从 3 个文件中的 1 个中的提交 A 中删除(而不是还原)更改。

删除为空行而不是代码

我试过

git show < A的提交哈希> file_path | git 申请 -R -3

这将删除额外的代码(这超出了提交 A 的范围:如果有兴趣,请参见下面的详细信息)

我能想到的一种方法是在文件上使用 git blame,只要哈希匹配,删除行,但似乎是非常迭代的过程和耗时。

任何指针都会有所帮助..

提前致谢

从文件中删除超出提交 A 范围的额外代码:

  1. 在文件末尾添加了提交 A
  2. 新提交在文件末尾的提交 A 之后添加了更多代码(低于提交 A 的更改)
  3. 现在,当我们反转提交 A 中的更改时(使用 git apply -R -3),它​​会从提交 A 的开始到文件结尾进行清理,因为对于 git,代码最初是添加到文件末尾的
4

1 回答 1

1

我仍然会尝试 git-revert 删除提交 A 中的行。

接下来,您要恢复其他两个不需要还原的文件。git checkout HEAD^ - file1 file2是恢复到原始文件内容的方式。

最后提交修改以覆盖比“Revert ...”更好的消息</p>

于 2021-11-11T23:34:19.180 回答